Merhaba arkadaşlar,
Bot denemesi yapıyorum ancak botun veri çektiği site header location ile başka yere yönlendiği için bot veriyi çekemiyor. Bu sorunu nasıl aşabilirim?
preg_match($uyenom,$store,$uyenu);
ile çekiyorum.
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); işe yaramıyor çünkü safe mode problemi var
PHP Botta Yönlendirme
4
●436
- 12-09-2010, 16:32:31
function get_redirect_url($url){ $redirect_url = null; $url_parts = @parse_url($url); if (!$url_parts) return false; if (!isset($url_parts['host'])) return false; //can't process relative URLs if (!isset($url_parts['path'])) $url_parts['path'] = '/'; $sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30); if (!$sock) return false; $request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ? '?'.$url_parts['query'] : '') . " HTTP/1.1\r\n"; $request .= 'Host: ' . $url_parts['host'] . "\r\n"; $request .= "Connection: Close\r\n\r\n"; fwrite($sock, $request); $response = ''; while(!feof($sock)) $response .= fread($sock, 8192); fclose($sock); if (preg_match('/^Location: (.+?)$/m', $response, $matches)){ if ( substr($matches[1], 0, 1) == "/" ) return $url_parts['scheme'] . "://" . $url_parts['host'] . trim($matches[1]); else return trim($matches[1]); } else { return false; } }Ben bu fonksiyonu kullanıyorum. php.net den bulmuştum galiba.
$yeni_url = get_redirect_url($url);
şeklinde kullanabilirsin. - 13-09-2010, 00:47:46Üyeliği durduruldu
