[]
Curl engellenebiliyor mu?
şimdi bi curl kullanayım dedim.
bazı sitelerde curl ekrana boş bastırıyor.
fonksiyonumu sonda paylaşacağım.
idefix'te örneğin, boş bastırıyor. kitapyurdunda falan sıkıntı yok.
sebebi nolabilir, nasıl aşılabilir?
function curl($site){
$ch=curl_init();
$maxredirect = 2;
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$mr = $maxredirect === null ? 5 : intval($maxredirect);
if (ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')){
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $mr > 0);
curl_setopt($ch, CURLOPT_MAXREDIRS, $mr);
}else{
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
if ($mr > 0){
$newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$rch = curl_copy_handle($ch);
curl_setopt($rch, CURLOPT_HEADER, true);
curl_setopt($rch, CURLOPT_NOBODY, true);
curl_setopt($rch, CURLOPT_FORBID_REUSE, false);
curl_setopt($rch, CURLOPT_RETURNTRANSFER, true);
do {
curl_setopt($rch, CURLOPT_URL, $newurl);
$header = curl_exec($rch);
if (curl_errno($rch)){
$code = 0;
}else{
$code = curl_getinfo($rch, CURLINFO_HTTP_CODE);
if ($code == 301 || $code == 302){
preg_match('/Location:(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches));
}else{
$code = 0;
}
}
}
while ($code && --$mr);
curl_close($rch);
if (!$mr){
if ($maxredirect === null){
trigger_error('Too many redirects. When following redirects, libcurl hit the maximum amount.',E_USER_WARNING);
}else{
$maxredirect = 0;
}
return false;
}
curl_setopt($ch, CURLOPT_URL, $newurl);
}
}
return curl_exec($ch);
}
bazı sitelerde curl ekrana boş bastırıyor.
fonksiyonumu sonda paylaşacağım.
idefix'te örneğin, boş bastırıyor. kitapyurdunda falan sıkıntı yok.
sebebi nolabilir, nasıl aşılabilir?
function curl($site){
$ch=curl_init();
$maxredirect = 2;
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$mr = $maxredirect === null ? 5 : intval($maxredirect);
if (ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')){
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $mr > 0);
curl_setopt($ch, CURLOPT_MAXREDIRS, $mr);
}else{
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
if ($mr > 0){
$newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$rch = curl_copy_handle($ch);
curl_setopt($rch, CURLOPT_HEADER, true);
curl_setopt($rch, CURLOPT_NOBODY, true);
curl_setopt($rch, CURLOPT_FORBID_REUSE, false);
curl_setopt($rch, CURLOPT_RETURNTRANSFER, true);
do {
curl_setopt($rch, CURLOPT_URL, $newurl);
$header = curl_exec($rch);
if (curl_errno($rch)){
$code = 0;
}else{
$code = curl_getinfo($rch, CURLINFO_HTTP_CODE);
if ($code == 301 || $code == 302){
preg_match('/Location:(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches));
}else{
$code = 0;
}
}
}
while ($code && --$mr);
curl_close($rch);
if (!$mr){
if ($maxredirect === null){
trigger_error('Too many redirects. When following redirects, libcurl hit the maximum amount.',E_USER_WARNING);
}else{
$maxredirect = 0;
}
return false;
}
curl_setopt($ch, CURLOPT_URL, $newurl);
}
}
return curl_exec($ch);
}
engellenemez diye biliyorum. bende curl kullanan biriyim şu ana kadar hiç karşılaşmadım
- facebook (02.10.13 20:56:27)
allah allah bunu niçin boş basıyor öyleyse.
ben idefixe daha önce de curl ile bağlanıyordum ilk kez böyle bir şeyle karşılaştım. aklıma da hiçbir çözüm gelmiyor, hata da vermediği için.
ben idefixe daha önce de curl ile bağlanıyordum ilk kez böyle bir şeyle karşılaştım. aklıma da hiçbir çözüm gelmiyor, hata da vermediği için.
- tchuck (02.10.13 20:57:34)
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17');
şeklinde eklemeyi deneyin bazı siteler bot görünümündeki agentları reddediyormuş sanırım. ayrıca auto_referrer'ı true yapmak da işe yarayabilirmiş.
stackoverflow.com
şeklinde eklemeyi deneyin bazı siteler bot görünümündeki agentları reddediyormuş sanırım. ayrıca auto_referrer'ı true yapmak da işe yarayabilirmiş.
stackoverflow.com
- yuto (02.10.13 22:36:14)
1