2012-01-20 36 views
0

我想檢查內容的網站,有沒有一些字它的網站或沒有?檢查內容的查找字的網址

演示:http://codepad.viper-7.com/CQh18s

我試着爲:

$url = "http://www.stackoverflow.com/": 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $contents = curl_exec($ch); 
    curl_close($ch); 

    $link = array(
     "Top", 
     "Questions", 
     "Favorite", 
     "Tags", 
     "ago", 
     "vote", 
     "answers" 
    ); 
    $resulet = ""; 
    foreach ($link as $val) { 
     if (strstr($contents, $val)){ 
      $resulet += '1'; 
     }else{ 
      $resulet += '0'; 
     } 
    } 
    echo $resulet; 
    if ($resulet != 0) { 
     echo 'FALSE'; 
    }else{ 
     echo 'TRUE'; 
    } 
+3

好吧我不知道你在問什麼,你想找到一個字* IN *一個網址? – Jakub

+0

您是否遇到了從URL加載文本的問題 - 或者您在搜索某些其他字符串內的字符串時遇到問題? – hakre

回答

2

在這樣的情況下是有幫助做一些初步的調試:

  1. 做一個var_dump($contents);首先要保證你」重新獲得您期望的可搜索內容。
  2. 做一個var_dump($resulet);以確保您的結果變量是您所期望的。

沒有進一步的澄清,你似乎試圖創建一個數字增量變量$resulet,但用字符串變量。

代碼的

捲曲部分看起來不錯,所以我懷疑,如果你這樣做,你會收到預期的結果:

$resulet = 0; 
foreach ($link as $val) { 
    $resulet += strstr($contents, $val) ? 1 : 0; 
} 
var_dump($resulet); 

如果沒有,你可能需要改變你的strstrstristr到使搜索不區分大小寫。

0

你的代碼中的主要問題是你不讓curl遵循重定向。正如@rdlowrey所說,只是傾銷$contents var,意識到該頁面有新的位置。

爲了讓捲曲遵循重定向,只是你curl_exec之前添加這些選項:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 5); 

除此之外,爲什麼使用$resulet的計數器,而不是把它當作一個整數?

$resulet = 0; 
... 
$resulet += 1;