cURL get_data ($ url) с абсолютным URL - PullRequest
1 голос
/ 12 января 2012

Я использую этот код для получения данных с использованием cURL

$url='http://example.com/'; //URL to get content from..
print_r(get_data($url)); //Dumps the content

/* Gets the data from a URL */
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

Однако этот код возвращает данные с относительным URL. Как я могу получить этот относительный URL и распечатать с абсолютным URL? Может быть с preg_replace .. Но как?

Ответы [ 2 ]

5 голосов
/ 12 января 2012

Посмотрите на тег HTML base.Это может оказаться полезным, если вы хотите, чтобы браузер делал все относительные в абсолютные преобразования:

$data = get_data($url);
// Note: ideally you should use DOM manipulation to inject the <base>
// tag inside the <head> section
$data = str_replace("<head>", "<head><base href=\"$url\">", $data);
echo $data;
1 голос
/ 12 января 2012

Я думаю, что вы должны использовать HTML-парсер, такой как http://simplehtmldom.sourceforge.net/, и заменить все ссылки на правильный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...