нижние ссылки также - PullRequest
1 голос
/ 07 августа 2009

Я не очень хорошо объясняю по-английски, но я попробую. Надеюсь, вы понимаете.

В php у меня есть этот скрипт, который выбирает URL и отображает содержимое. Все идет нормально. Содержание показывается так:

например. site.php? URL = http://google.com

Но КОГДА я нажимаю на что-то на странице, например. google.com, то мой сайт исчезает, и пользователь просматривает страницу google.com

Как мне это сделать, когда они нажимают на ссылку, они должны оставаться на моем сайте, и должен изменяться только параметр URL.

Спасибо!

Надеюсь, ты меня понял, я плохо пишу по-английски ...

Ответы [ 4 ]

2 голосов
/ 07 августа 2009

Вам нужно пройти по всем ссылкам на странице, заменив их ссылками на ваш сайт, чтобы

<a href="http://www.something.com">Some Link</a>

... превращается в:

<a href="http://www.yoursite.com/site.php?url=http://www.something.com">Some Link</a>

Обратите внимание, что для корректной работы вам понадобятся все виды причудливого кодирования и экранирования URL. Веселись!

1 голос
/ 07 августа 2009

Надеюсь, это уместно. Другой способ - открыть соответствующий сайт в [ gasp ], в фрейме. Таким образом, любые ссылки, щелкнувшие в iframe, останутся в своем собственном фрейме, очень похоже на то, как работает панель digg или исходящие ссылки на Facebook, но вы все равно можете контролировать окружающий контент.

0 голосов
/ 07 августа 2009

По сути, вы пытаетесь создать прокси в PHP?

Ну, это будет не так просто, боюсь: вам нужно будет найти все ссылки в HTML-контенте и переписать их одну за другой ... И это для тех, которые вы хотите переписать (вероятно, не все, поэтому)

Несколько идей:

  • Вы можете попробовать сделать это с парой регулярных выражений ... Это закончится довольно грязно ...
  • То же самое с str_replace и т.п. ...
  • Может быть, с DOMDocument::loadHTML, некоторыми манипуляциями с DOM и XPath ... Но это, вероятно, тоже ад на земле ...

Так что, в PHP нет идеи чуда, я боюсь: - (


Я не пробовал сам, но если вы работаете с Apache и вы являетесь администратором своего сервера, возможно, mod_proxy_http и mod_proxy могут помочь вам ( хотя не уверен)


Говоря о прокси PHP, возможно, вы могли бы взглянуть на какое-то существующее программное обеспечение, которое, кажется, уже делает то, что вам нужно.

Например:

Могут быть и другие, кстати ...

Цитирование страницы Glype:

Скрипт Glype Proxy является бесплатным для использования, веб-прокси-скрипт, написанный на PHP. Подобно обычному прокси-серверу, Запрошены загрузки скриптов веб-прокси веб-страницы и файлы и пересылает их назад к пользователю. Служба предоставлено самой веб-страницей, которая позволяет мгновенный доступ к прокси без редактирования вашего браузера настройки подключения.

К сожалению, демонстрационная страница сейчас не работает: - (

Я не смотрел на то, что они могут сделать ... Но, возможно, они могут помочь вам ;-)
то есть, в их источнике кода могут быть некоторые идеи, на которых вы могли бы основывать свой скрипт?

0 голосов
/ 07 августа 2009
<?php
    $url = 'http://www.google.com';
    echo '<a href="?' . urlencode ($url) . 'url=">Google</a>';
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...