Загрузка внешнего сайта с PHP без разрыва относительных ссылок на этом сайте - PullRequest
0 голосов
/ 29 марта 2019

У меня есть страница php, с которой я пытаюсь загрузить, а затем выводит эхо и внешнюю страницу (которая находится на том же сервере, но по другому пути / домену, если это имеет значение).

Я пытался использовать и file_get_contents(), и curl. Они оба корректно загружают html целевой страницы, проблема в том, что она отображается неправильно, потому что эта целевая страница имеет относительные ссылки на несколько файлов (images, css, javascript).

Есть ли способ сделать это с помощью PHP? Если нет, что будет следующим лучшим способом? Целевой сайт должен выглядеть так, как будто он загружается с начальной страницы (с точки зрения URL), я не хочу делать перенаправление.

Итак, браузер покажет http://example.com/initial-page.php, хотя его содержимое взято из http://example2.com/target-page.php

EDIT: Это то, что можно легко сделать с помощью iframe, но я хочу избежать этого и по нескольким причинам, одна из них заключается в том, что с помощью iframe это нарушает отзывчивость целевого сайта. Я не могу изменить код целевого сайта, чтобы это исправить.

1 Ответ

0 голосов
/ 10 мая 2019

В конце концов, решение было комбинацией того, что я пытался сделать (используя curl) и того, что WebRookie предложило использовать HTML-тег base на странице, загружаемой с помощью curl.

В моем конкретном случае я передаю базовый URL в качестве параметра в curl и отображаю его на загруженной странице, что позволяет мне загружать эту же страницу с разных веб-сайтов (чтобыла еще одна причина, почему я хотел сделать это).

...