- RU.PHP.CHAINIK --------------------------------------------- RU.PHP.CHAINIK -
Msg : #448 [517]
От : Bayandin Peter 2:4600/108.31 17 августа 03, 22:21
Кому : Alexander Bobrovsky 17 августа 03, 23:41
Тема : Re: distant page
-------------------------------------------------------------------------------
Hi Alexander Bobrovsky, hope you are having a nice day
11-Aug-03 10:52:33, Alexander Bobrovsky wrote to Bayandin Peter
Subject: Re: distant page
>> Если даже заменить src и href то вроде еще более-менее, но ведь
>> есть еще javasript и css, которые могут ошибиться с выбором
>> обрабатываемого элемента...
AB> Я делал нечто подобное следующим образом.
AB> 1. Считываешь оригинальную страницу. Раньше я делал это просто
AB> функцией file, но сейчас переделал через сокеты с помощью
AB> протокола HTTP, чтобы можно было передавать и POST-параметры
AB> (например, для работы со страницами с формами).
AB> 2. Hекоторая обработка - например, вырезать комментарии, скрипты и
AB> т.п.
хм.. и банеры ;)
AB> 3. Дальше идет такой кусок:
AB> $html =
AB> preg_replace("/(<(?:a|area)\s+.*?href=)(.*?)(\s+.*?>|>)/eis",
AB> "store_reference(\"\$1\", \"\$2\", \"\$3\", 0)", $html); $html =
AB> preg_replace("/(<(?:frame|iframe|layer)\s+.*?src=)(.*?)(\s+.*?>|>)/
AB> eis", "store_reference(\"\$1\", \"\$2\", \"\$3\", 0)", $html);
AB> и т.д. для тэгов img, link, body, td, form, ...
а почему просто не сосредоточиться на параметрах и заменять сразу
src, href и т.п. на правильный абсолютный адресс?
AB> (Прошу ногами не бить, регулярные выражения пишу, как могу - не
AB> очень красиво, но главное, что работает.)
да ладно уж :)
AB> 4. Результат замены отсылается клиенту.
AB> 5. Функция store_reference получает оригинальную ссылочку,
AB> сохраняет ее в БД и присваивает ей некий уникальный код, которым
AB> заменяет оригинальную ссылку и возвращает таким образом
AB> модифицированный тэг для вставки в оригинальный документ.
AB> 6. Когда пользователь кликнет по какой-то модифицированной ссылке,
AB> скрипт для просмотра страниц получает как параметр (или каким-либо
AB> другим способом) тот самый уникальный код, на его основании из БД
AB> извлекает оригинальный url и вся операция повторяется уже с новой
AB> страницей.
блин, ну за чем такие сложности? почему просто не встроить ссылку прямо
в хтмл или на худой конец в джава-скрипт?
AB> Работающую систему можешь посмотреть по адресу
AB> http://www.broadgate.cz/anonymne/anonymne.html Конечно, еще очень
AB> далеко от совершенства (например, не обрабатываюся java-скрипты, в
AB> некоторых случаях теряется оформление и т.п.), но в первом
AB> приближении работает сносно. Пиши, если хорошо попросишь ;-),
AB> скину и исходники.
интересно конечно было бы посмотреть, ибо в сокетах я пока совсем
никакой :(
Кстати, а сколько времени в среднем занимает обработка одной странички?
-=> Yours sincerely, Bayandin Peter <=-
--- Terminate 5.00/Pro Mode, Challenge Pro Mode...
* Origin: The Game is Over! Thanks for Playing! (2:4600/108.31)