如何在QUERY_STRING中查找特定单词

时间:2017-02-13 22:23:36

标签: php

我需要在字符串中搜索特定的单词 我尝试不同的方式,但我总是一个错误 Blog& Content是我想要找到的元素

  

警告:strpbrk()期望参数2为字符串,

$string = $_SERVER['QUERY_STRING'];

var_dump($string);
if (strpbrk($string, $page) !== false) {
  var_dump('true');
}

抱歉元素

var_dump($string) = string(31) "Blog&Content&blog_content_id=25" 
var_dump($page) array(2) { [0]=> string(12) "Blog&Content" [1]=> string(0) "" } 

2 个答案:

答案 0 :(得分:0)

您的特定字词位于0数组的$page位置。
使用以下内容:

$string = $_SERVER['QUERY_STRING'];

var_dump($string);
if (strpos($string, $page[0]) !== false) {
  var_dump('true');
}

答案 1 :(得分:0)

其他人建议使用strpos()检查子字符串是否存在,但这不是一种值得信赖的方法,可以在样本隔离之外使用。目标字符串可以像值一样容易存在而不是键。

作为更好的做法,请在parse_str()上使用$_SERVER["QUERY_STRING"],并在条件声明中根据需要致电isset()

代码:(假设$_SERVER["QUERY_STRING"]="Blog&Content&blog_content_id=25"):

parse_str($_SERVER["QUERY_STRING"],$qs);
// $qs=array('Blog'=>'','Content'=>'','blog_content_id'=>'25');
if(isset($qs['Blog']) && isset($qs['Content'])){
    echo "true";
}else{
    echo "false";
}

让自己轻松一点,享受将查询字符串转换为数组的所有好处。