Intereting Posts
Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL Code Igniter -> прикреплять электронную почту Laravel прикованный / связанный блок выбора не смог загрузить статус ресурса. Внутренняя ошибка сервера. Flash-просмотрщик в формате pdf как использовать json_encode Отправка данных сокетов с использованием значения ведущей длины Uncaught OAuthException: Неизвестная ошибка произошла с PHP API PHP Передача динамических данных в загрузочный модальный strtotime () выдает false в отформатированную дату как изменить регистр строки в php? paSSw5ORD в PAssW5ord? Как сделать резервную копию базы данных MySQL на PHP? PHP: самый быстрый способ проверить недопустимые символы (все, кроме az, AZ, 0-9, #, -,., $)? Как отслеживать загрузку файлов JSON кодирует и декодирует на PHP Почему это совместное использование файлов cookie и сеансов работает? Смущенный

PHP: относительно абсолютных URL-адресов в curl'ed html

Я извлекаю простую 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-адрес, но я безуспешно пытался вставить это решение в этот код.

Solutions Collecting From Web of "PHP: относительно абсолютных URL-адресов в curl'ed html"

Исправлено. Установите флаг 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); 

Я не проверял это, но он должен делать то, что вам нужно.