在变量中查找字符串

时间:2013-02-06 12:35:43

标签: php

我正在尝试在变量中找到一个字符串。问题是它不会寻找唯一的字符串 例如,a具有包含以下值的变量:

$mystring = "p,pp,m,g";

这是我正在使用的代码:

<?php 
    $find="pp";
    if(strstr($mystring, $find)==true){
        echo "found"; 
    } 
?>

问题是:当我在寻找pp时,它也会返回“p”。 我怎样才能避免这种错误呢? 我用它来检查电子商务网站上的项目大小,我正在努力做到正确。

任何想法?!

4 个答案:

答案 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";
   }
}

参考:http://php.net/manual/en/function.preg-match.php

答案 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函数来避免类似的字母问题。