2012-01-16 108 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)以检查实际值是什么,如果它不是字符串或整数。