我使用了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]
请任何解决方案,并随时怀疑。
答案 0 :(得分:1)
[slider]
是一个字符类,这意味着,如果在提供的字符串中找到列表中的任何字符,preg_match()
将返回一个真值。您需要明确地转义字符[
和]
以匹配字符串[slider]
:
if (preg_match('/\[slider\]/', $value)) {
# code...
}