我使用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
答案 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 )
,以检查实际值是什么,如果它不是字符串或整数。