我制作了一个图像搜索系统。每个图像的名称如下tag1_tag2_tag3_tag4.jpg搜索tag1不起作用,但搜索所有其他图像都起作用。这是strpos的问题还是我遗漏了什么?
代码:
$images = glob($filedir."*.{jpg,JPG,png,PNG,gif,GIF}",GLOB_BRACE);
if (empty($images))
{
echo '<p>Something went wrong with the image retrieval!</p>';
}
else
{
foreach($images as $image)
{
$filename = pathinfo($image, PATHINFO_FILENAME);
$filename = str_replace("_","",$filename);
if (strpos($filename, $query))
{
echo '<a href="'.$image.'"><img src="'.getThumb($image).'"/></a>';
}
}
strpos()
返回位置。如果它在第零个位置找到它,那么它返回零。但是您将其用作布尔值,并且零为false。
相反,与!==
:进行比较
if (strpos($filename, $query) !== false)