preg_match函数始终返回true值

时间:2014-03-07 13:17:37

标签: php mysqli

我使用了preg_match函数,当匹配发生时它可以正常工作,但是当没有匹配时它也会返回true。 我正在使用的代码是:

if (preg_match('/[slider]/',$value)) {
//return $kk=preg_match('/[slider]/',$value);
$out=delete_all_between('[', ']', $value);

$xx=explode("[slider id=",$value);

    $yy=$xx[1];
    $zz=str_replace(']', '', $yy);
    $slider_query=mysqli_query($con,"select images_id from sliders where id='$zz'");
    $slider_query_result=mysqli_fetch_array($slider_query);
    $images_id=$slider_query_result['images_id'];
    $split_images_id=explode(",",$images_id);
    $data="";
    foreach($split_images_id as $si)
    {
    $image_query=mysqli_query($con,"select image_url from gallery where id='$si' ");
    $image_query_result=mysqli_fetch_array($image_query);
    $image=$image_query_result['image_url'];
    $data.='<li><a href="#"><img src="uploads/'.$image.'" height="80px" width="80px"></a></li>';
    }
    return $out.$data;
}
 else
 {
     return $value;
 }
}

$value包含[slider],第二次&amp;值不包含[slider] 请任何解决方案,并随时怀疑。

1 个答案:

答案 0 :(得分:1)

[slider]是一个字符类,这意味着,如果在提供的字符串中找到列表中的任何字符preg_match()将返回一个真值。您需要明确地转义字符[]以匹配字符串[slider]

if (preg_match('/\[slider\]/', $value)) {
    # code...
}