我制作了一个图像搜索系统。每个图像都被命名为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>';
}
}
答案 0 :(得分:1)
strpos()
返回位置。如果它在零位置找到它则返回零。但是你使用它作为布尔值,零是假的。
而是与!==
比较:
if (strpos($filename, $query) !== false)