Перезапись "внешнего" URL - PullRequest
       1

Перезапись "внешнего" URL

0 голосов
/ 29 августа 2011

Я ищу решение для замены всех ссылок из скручиваемого ответа на мой сайт.

Допустим, мой сайт: example.com, затем я делаю запрос CURL на site.com.На site.com есть различные ссылки:

   <a href="http://smthing.com">Something!</a>
   <some html>......
   <a href="http://google.com">Google!</a>
   <more html>
   <a href="#" onclick="window.location.href='http://somethingElse.com'">Something else</a>

Моя цель состоит в том, чтобы поставить перед всеми ссылками префикс: example.com/?url= averageTHE URL-адрес ссылки} (AKA my site).

Мое текущее решение использует регулярные выражения, чтобы «поймать» и обработать все ссылки.Это работает большую часть времени, но время от времени я сталкиваюсь с недопустимым HTML, который не соответствует регулярному выражению.У регулярного выражения есть еще один недостаток: я не могу отследить действия onclick = "" и различные сценарии ссылок.

Я слышал несколько решений, таких как перезапись и обратный прокси.Кто-нибудь из них может работать для достижения моей цели?

Спасибо ..

1 Ответ

0 голосов
/ 29 августа 2011

Вы должны быть в состоянии использовать регулярные выражения для этого. Однако ваш код должен быть немного более устойчивым для обработки встроенных сценариев. Проанализируйте большой образец атрибутов привязки, чтобы определить все возможные форматы ссылок, сверх / href = "" / и /window.location.href/.
Вам также нужно будет проанализировать файлы сценариев, на которые есть ссылки, чтобы увидеть, что содержат обработчики событий.

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