Я извлекаю простую HTML-страницу, используя curl в PHP:
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://example.com/server"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); ?>
и include
его в файл на моем сайте:
<?php include('curlingCodeAbove.php');?>
Я хочу заменить относительные URL-адреса в curl
ed HTML абсолютными URL-адресами. Я знаком с изменением относительного URL-адреса на абсолютный URL-адрес, но я безуспешно пытался вставить это решение в этот код.
Исправлено. Установите флаг CURLOPT_RETURNTRANSFER
.
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://example.com/server"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); curl_close($ch); $result = preg_replace("#(<\s*a\s+[^>]*href\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#",'$1http://mydomain.com/$2$3', $result); echo $result ?>
Хотя это, вероятно, плохая форма, чтобы принять свой собственный ответ, эй, я тот, кто понял это.
То, как я это делаю, это поиск ="/
и заменить на ="http://www.example.com/
например:
$replaces['="/'] = '="http://www.example.com/'; $output = str_replace(array_keys($replaces), array_values($replaces), $output);
Я не проверял это, но он должен делать то, что вам нужно.