PHP включает полный URL (или веб-сайт) - PullRequest
3 голосов
/ 12 ноября 2010

Я пытаюсь сделать что-то, что мне показалось простым, но не таким.

Я хочу иметь возможность включать отдельный сайт в мой PHP-код. По сути, причина этого в том, что я пишу «главную» страницу, на которой есть ссылки, а под моими ссылками находятся «включенные» сайты на той же странице. Смысл в том, что я просто создаю простое «основное» место для всех моих пользователей, чтобы получить доступ к нашим инструментам. Проблема в том, что наши инструменты распространяются на несколько других веб-сайтов (все локальные и внутренние для нашей сети). В PHP я не уверен, что вы можете сделать это, и способ «сделать это» будет получить содержимое удаленного сайта, используя file_get_contents():

 <?php
   $a = file_get_contents("http://url/folder");
   echo ($a);
 ?>

Проблема с этим решением состоит в том, что все включения и ссылки на файлы CSS теперь все повреждены, потому что, я полагаю, с file_get_contents() это просто приводит к источнику, который был бы сгенерирован, поэтому ссылки CSS-код потерян, и он унаследует CSS, который использует текущая страница.

Это почти как если бы я хотел, чтобы это работало так, как если бы это было как iframe, но я не хочу использовать iframes, я просто хочу иметь возможность включать удаленные "сайты" на той же странице, что и мой интерфейс. 1010 *

Ответы [ 4 ]

0 голосов
/ 13 ноября 2010
<HTML>
<HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <META http-equiv="Cache-Control" content="no-cache">
     <meta http-equiv="Description" name="Description" content="">
     <meta http-equiv="Keywords" name="Keywords" content="">
     <TITLE>Title</TITLE>
</HEAD>
<FRAMESET rows="*,0">
    <FRAME src="http://url/folder" frameborder="0" noresize>
    <NOFRAMES>
       Your browser does not support frames.
    </NOFRAMES>
</FRAMESET>
</HTML>
0 голосов
/ 12 ноября 2010

Я действительно смог понять это сам. Хотя это не очень хорошая практика PHP / безопасность, я включил allow_url_include в php.ini, и это решило проблему. Опять же, это может быть практикой, однако включенные URL-адреса являются простыми веб-сайтами / URL-адресами, внутренними для нашей организации, а также недоступными за пределами нашей сети.

0 голосов
/ 12 ноября 2010

вам придется переписать все остальные страницы, чтобы иметь абсолютные ссылки на все включенные ресурсы [css, js и т. Д.], Кроме этого, вы можете довольно прозрачно настроить диафрагмы, посмотрите http://api.fatherstorm.com/test/, где я некоторая магия jQuery для добавления страниц в события клика, при этом вы не можете сказать, что они в фреймах.

0 голосов
/ 12 ноября 2010

Ну, как правило, решением было бы разобрать исходный код и исправить ссылки самостоятельно.Хотя у меня все еще есть тенденция использовать iframes - вот для чего они полезны.

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