Описываю ситуацию.
Введение:
Есть локальная сетка и есть в этой сетке шлюз в Инет. Задача такая. Разместить локальный
мини-сайт, через который все пользователи локальной сети смогут посещать некоторые
страницы сети Интернет. Получается прототип прокси.
Как решается и что на данный момент сделано:
На шлюзе установлен Апач (точнее пока там стоит пакет Денвер, но потом будет только
Апач), создано доменное имя с привязкой по АйПи шлюза.
Есть страничка index.php. Эту страничку и будет загружать локальный пользователь и через
нее (корректно интересно так писать ) будет путешествовать во всемирной паутине.
В этой страничке для тестинга есть ссылка, по которой пользователь должен получить
информацию о погоде (по сути происходит загрузка страницы
www.weather.yandex.ru).
Вот ссылка:
_<a
href="weather_news.php?source=http://www.weather.yandex.ru&dest=.//weaher_ya.html&base=ww
w.weather.yandex.ru">Прогноз погоды_</a>
Как видно из этой ссылки, запускается скрипт РНР, которому методом GET ередается 3
параметра:
1параметр-адрес загружаемой страницы
2параметр-имя и адрес под которым будет произведено сохранение на локальный диск,
загружаемой страницы
3параметр-имя бзовой страницы (потом станет понятно, если до этого дойдет
)
Вот код РНР-скрипта:
<?php
$source_file=$_GET['source'];
$dest_file=$_GET['dest'];
$base_site=$_GET['base'];
$command_file="start SavePage.exe $source_file $dest_file $base_site";
exec($command_file);
include_once("header.html");
include_once($dest_file);
include_once("footer.html");
?>
Как видно из кода РНР скрипт производит лишь запуск программы SavePage с передачей ей
параметров, дожидается конца работы программы, затем отображает в браузере файл, который
находится на локальном диске. Этот файл по сути и есть требуемая страничка с погодой.
Как становится понятно,задача программы SavePage состоит в том, чтобы по протоколу HTTP
сохранить требуемую страницу.
Возможно кто-то сейчас скажет: "а почему бы это не делать сразу из РНР скрипта". Дело в
том, что неоднократные попытки сделать отображение страницы из РНР скрипта всегда
приводили к одному и тому же результату - падению Апач, к тому же неизвестно еще до конца
какие функции будут возложены на программу SavePage и сможет ли с этим справиться РНР
скрипт.
Вот такой вот огород, постарался описать подробно, чтобы всем сразу стало все понятно.
Возможно способ решения задачи не самый лучший, но какой есть.
НЕдостаток (может их и много, но меня этот беспокоит
). Дело в том, что надо
редактировать исходную страничку, надо редактировать ссылки и код для вставки
изображений, для того, чтобы ссылки были ликвидны и рисунки загружались. Я сначала
тестировал все на шлюзе и мне достаточно было изменить все относительные ссылки на
абсолютные (для этого и требовался параметр "базовый сайт"). Т.е. я проводил поиск и
замену в тексте и в случае, если находил такое
то менял на
<a href="http://www.weather.yandex.ru/tune.xml">
Думаю понятно. И на шлюзе это прокатывало, рисунки отображались, переход по ссылкам был.
Стоит отметить, что я понимал, что переход по ссылкам (не на шлюзе) работать так не будет
и ссылки придется заменить на, к примеру
<a href="www.rsn.ru?source="www.weather.yandex.ru/tune.xml"&dest="..."&base="...""
Но про рисунки я не подумал
.
Вот мне бы хотелось у общественности узнать, как мне поступить для решения проблемы с
отображенем изображений. Один вариант есть - это сохранять все рисунки на локальном
диске, как и ХТМЛ страницу, но мне этот вариант не по нраву, хотелось бы как-то иначе,
если это возможно. Неужели никак нельзя выкрутиться, на шлюзе же изображения
отображаются.
Надеюсь на ваш совет.
з.ы. Прошу прощения за такое ужасное назвние темы, но это лучшее что во голове сформировалось.