我正在尝试在变量中找到一个字符串。问题是它不会寻找唯一的字符串 例如,a具有包含以下值的变量:
$mystring = "p,pp,m,g";
这是我正在使用的代码:
<?php
$find="pp";
if(strstr($mystring, $find)==true){
echo "found";
}
?>
问题是:当我在寻找pp时,它也会返回“p”。 我怎样才能避免这种错误呢? 我用它来检查电子商务网站上的项目大小,我正在努力做到正确。
任何想法?!
答案 0 :(得分:2)
使用strpos。确保使用!==运算符。
echo strpos($mystring, $find) !== false ? 'found' : 'not found';
答案 1 :(得分:1)
$mystring = "p,pp,m,g";
$str = explode(",",$mystring);
$find = "/^pp$/";
foreach($str as $val){
if(preg_match($find, $val)){
echo "found => ".$val;
}else{
echo "not found";
}
}
答案 2 :(得分:0)
您可以使用转换为数组并搜索为数组元素:
$mystring = "p,pp,m,g";
$arr = explode(',',$mystring);
if (in_array('p',$arr,true)) {echo "found";}
或(http://php.net/manual/en/function.strstr.php:“如果您只想确定特定针是否出现在haystack中,请使用更快且内存更少的函数strpos()代替”)您可以编写
if (strpos($mystring,'pp')!==false) {echo 'found';} else {echo 'not found';}
答案 3 :(得分:0)
只是更改了值并使用相同的strstr函数来避免类似的字母问题。