2011-08-29 68 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/。
您還必須解析引用的腳本文件,以查看事件處理程序保存的內容。