2011-08-29 117 views
0

我正在寻找一个解决方案,以取代所有从卷曲响应到我的网站的链接。重写“外部”网址

可以说我的网站是:example.com,然后我向site.com发出CURL请求。 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> 

我的目标是前缀的所有链接用:该链接的URL example.com/?url={THE}(AKA我的网站)。

我目前的解决方案使用正则表达式来“捕捉”并处理所有链接。 这在大多数情况下都能正常工作,但有时候我遇到了一个无效的HTML,它不符合正则表达式。 正则表达式还有另一个缺点:我无法捕捉到onclick =“”操作和不​​同的链接场景。

我听说过几种解决方案,如重写和反向代理。他们中的任何一个都可以实现我的目标?

谢谢..

回答

0

你绝对应该能够使用正则表达式这一点。但是,您的代码必须更强壮才能处理内联脚本。分析大量的锚点属性样本,以确定所有可能的链接格式,over和above/href =“”/和/window.location.href/。
您还必须解析引用的脚本文件,以查看事件处理程序保存的内容。