2011-08-28 48 views
0

我一直在編寫webcrawler程序,並試圖將當前網址(當前或下一個要訪問的網站)與先前的網址(訪問的最後一個網站)進行比較。要做到這一點我使用的是strcmp功能,像這樣:PHP strcmp問題

array_push($currentsite, $source); 
    if (strcmp($currentsite[2], $currentsite[3])==0){ 
    echo "redundancy"; 
    crawlWebsite($originalsource); 
    } 

其中當前站點是以前站點和當前站點的陣列。每次在大型程序中遞歸時,我都會遍歷新站點。

但是,每次我在當前網站和新網站上運行strcmp時,即使網址相同,我也會得到-1的結果。有誰知道爲什麼這可能會一直髮生?

謝謝。

+0

你能給我們一個示例代碼嗎? –

回答

0

也許您正在測試的網站包含一些使其具有獨特性的內容,如當前時間或隱藏ID以保存會話或類似的內容。

無論如何,這將導致strcmp不返回0.這將是bettor有一個函數,給你一個平等的百分比,所以你可以定義一個級別,你認爲兩個站點相同。

1

即使網址相同,

如果兩個輸入字符串相同,STRCMP返回0,讓你的輸入字符串不相同。檢查$ currentite的內容。

BTW strcmp($a, $b) == 0可以有效地改寫爲$a == $b

+0

否 - Strcmp($ a,$ b)與$ a == $ b不同。後者會做奇怪的類型改變。一個很好的例子是:'1e3'=='1000'。有時使用==是有用的,但可能不與字符串結合使用。我剛剛注意到原來的評論是5年前,但它是錯誤的,現在是錯誤的:(。 – Jmons