2013-02-22 39 views
2

我想要一個在url中的url重定向跟蹤功能,如http://www.wheregoes.com/php可腳本化的網頁瀏覽器

我想檢測4種重定向:

  • HTTP 301重定向
  • HTTP 302重定向
  • meta標籤重定向
  • JavaScript重定向

如果我使用捲曲,我可以輕鬆檢測到301,302重定向,但很難檢測到其他兩個重定向。

所以我想一個腳本的網頁瀏覽器,我會使用下列庫:

$browser = Browser::createBrowser('chrome'); 
$delay = 10; // (This is a important parameter for detecting javascript or meta tag redirection). 

$browser->load($url, $delay, function onLoadComplete($arr_track_url){ 
    print_r($arr_track_url); 
}); 

我搜索,遇到了一些庫,如http://www.simpletest.org/en/browser_documentation.html,但它們不支持JavaScript和meta標籤重定向。

有沒有任何PHP腳本瀏覽器?或者我可以輕鬆檢測到JavaScript或元標記重定向?

+0

可能重複的[非瀏覽器模擬的JavaScript - 是否有可能?](http://stackoverflow.com/questions/1768717/non- javascript-browser-emulation-is-it-possible) – 2013-02-22 06:31:22

+0

[''標記仍然很容易](http://php.net/manual/en/function.get-meta-tags.php),JavaScript重定向相當困難。 – 2013-02-22 06:32:35

+0

我認爲非瀏覽器模擬對於我的請求來說太重了。因爲我不想解析CSS,所以需要繪製HTML等等。我只需要重定向的HTML。有沒有很酷的解決方案? – 2013-02-22 06:54:02

回答

2

如果我得到了這個權利,你想找出最終導致的一些鏈接哪裏,如果最終的網址不同於實際點擊的地址?

如果是這樣,我認爲最好的辦法就是讓瀏覽器做好工作,然後在出現問題後進行LOKO。這樣你就可以得到瀏覽器的「正常」行爲,而不是某個庫的行爲。

使用一個(隱藏的)iframe加載url。然後等待一個window.load事件或事情,然後查詢文檔位置。我現在沒有嘗試,但聽起來可以對我...

+0

我也認爲它不能很容易地解決一些庫代碼。但我怎樣才能交互瀏覽器實例與PHP? – 2013-02-22 06:43:07

+0

不知道你提到'圖書館'是什麼......但它肯定會做瀏覽器會做的一切,這應該是最終的目標。還是我錯過了你的問題? – arkascha 2013-02-22 06:44:34

+0

我想用php開發一個像http://www.wheregoes.com/這樣的網站,但它不支持元標記重定向和JavaScript重定向。我如何檢測服務器端的所有重定向? – 2013-02-22 06:52:03