cURL + mod_rewrite терзание

2 отговора 0 прегледа
#1

cURL + mod_rewrite терзание

Здравейте,

опитвам се да прочета чрез cURL страница в интернет и да взема 2-3 текстчета от нея, ето го и кода:

<?

// disguises the curl using fake headers and a fake user agent.
function disguise_curl($url) {
$curl = curl_init();

// Setup headers - I used the same headers from Firefox version 2.0.0.6
// below was split up because php.net said the line was too long. :/
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1";
$header[] = "Accept-Language: en-US,en;q=0.9";
$header[] = "Pragma: "; // browsers keep this blank.

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Opera');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);

$html = curl_exec($curl); // execute the curl command
curl_close($curl); // close the connection

return $html; // and finally, return $html
}

// uses the function and displays the text off the website

//Here it's work...
//$url = '[линк]';

//This is mod_rewrite URL and function return empty result...
$url = '[линк]';
$text = disguise_curl($url);
echo $text;

?>

==================================

Ето и съдържанието на robots.txt за тази страница:
User-agent: *
Disallow: /googleea9727fb11233153.html
Disallow: /googledec533d489551955.html
Sitemap: [линк]



Когато използвам функцията с `истински` URL-и, например:
1) $url = '[линк]'; ........ или
2) $url = '[линк]'

.... всичко си работи както трябва, НО когато подам на функцията URL, което е минало през mod_rewrite на сървъра...кода на страницата не се парсва (т.е. не работи), например с адрес:
$url = '[линк]'; ..... поради факта, че не й се подава истинския адрес (според мен), а преработения от `mod_rewrite` адрес. Иначе в браузъра тези адреси се отварят естествено без проблем, но през скрипта незнам как да ги подкарам. Въпроса ми е дали някой се е сблъсквал с подобно задача и ако да как се процедира в такива случаи. Пробвах да налучквам истинския адрес, но след 5-6 неуспешни опита се отказах и реших да пиша във форума, че нещо не ми стига пипката как да го излъжа това.

10х

Отговор
в отговор на nimel4o #2

Re: cURL + mod_rewrite терзание

А онзи сървър откъде знае дали използваш cURL или обикновен browser?...

Everything louder than everything else...
Отговор
в отговор на nimel4o #3

Re: cURL + mod_rewrite терзание

с file_get_contents не може ли да стане?

[линк]
Отговор