2012-01-16 137 views
1

我使用codeigniter.I想要在網站內容中搜索幾個單詞,那是否存在它的單詞在它的網站或沒有?如果網站返回中存在一個單詞(所有單詞)爲FALSE。我嘗試了下面的代碼,但得到錯誤。如何做到這一點?在網站內容中搜索php

DEMO:http://codepad.viper-7.com/rFiL01

<?php 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL,'stackoverflow.com'); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $contents = curl_exec($ch); 
     curl_close($ch); 
     $link[] = array("Questions", "Favorite", "myfoodho"); 
       foreach($link as $val){ 
        stristr($contents,$val); // Line 148 
        //if(){ 
        //  return true; 
        //}else{ 
        // return false; 
        //} 
       } 
?> 

錯誤:

A PHP Error was encountered

Severity: Warning

Message: stristr() [function.stristr]: needle is not a string or an integer

Filename: views/exchange.php

Line Number: 148

回答

3

當你寫

$link[] = array("Questions", "Favorite", "myfoodho"); 

要創建一個包含另一個數組的數組,那就是:

array(
    0 => array(
     "Questions", 
     "Favorite", 
     "myfoodho" 
    ) 
) 

在foreach循環中,您只是通過外部數組,因此$val包含內部數組,而不是字符串值。

解決方案是刪除括號並將數組賦值給變量。

$link = array("Questions", "Favorite", "myfoodho"); 

調試提示:該錯誤消息表示「針不是字符串或整數」。該功能的「針」是第二個參數(如果您不確定,請檢查the docs)。然後,您可以在該行之前添加var_dump($val)以檢查實際值是什麼,如果它不是字符串或整數。