通过php搜索站点内容

时间:2012-01-16 09:33:03

标签: php

我使用codeigniter。我想在网站内容中搜索几个单词,它确实存在它在网站中的单词还是没有?如果存在一个单词(所有单词)在它的网站返回是假的。我试过以下代码,但得到错误。怎么办呢?

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;
                    //}
                }
?>

错误:

  

遇到PHP错误

     

严重性:警告

     

消息:stristr()[function.stristr]:needle不是字符串或者是   整数

     

文件名:views / exchange.php

     

行号:148

1 个答案:

答案 0 :(得分:3)

写作时

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

您正在创建一个包含另一个数组的数组,即:

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

在foreach循环中,您只是通过外部数组,因此$val包含内部数组,而不是字符串值。

解决方案是删除括号并将数组分配给变量。

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

调试提示:错误消息显示“needle不是字符串或整数”。该函数的“针”是第二个参数(如果您不确定,请检查the docs)。然后,您可以在该行之前添加var_dump( $val ),以检查实际值是什么,如果它不是字符串或整数。