cURL get_data ($ url) с абсолютным URL-адресом

Я использую этот код для получения данных с помощью 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 & print с абсолютным URL? Может быть с preg_replace .. Но как?

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

 $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; 

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