strpos()stripos()问题php

strpos()stripos()问题php,php,arrays,strpos,stripos,Php,Arrays,Strpos,Stripos,我知道这是一个常规问题,我不想加入那些不知道strpos()返回字符串位置的人,如果你想比较它是否被找到,你必须使用===或==!比较 我的问题是,strpos每次都工作得很好,但现在它似乎有一个我找不到的问题,可能是因为我看它太久了 我的代码如下: $tmp = scandir("img/products"); $productImgs = array(); foreach ($tmp as $key => $value) { foreach ($subCats as $_su

我知道这是一个常规问题,我不想加入那些不知道strpos()返回字符串位置的人,如果你想比较它是否被找到,你必须使用===或==!比较

我的问题是,strpos每次都工作得很好,但现在它似乎有一个我找不到的问题,可能是因为我看它太久了

我的代码如下:

$tmp = scandir("img/products");
$productImgs = array();

foreach ($tmp as $key => $value) {
    foreach ($subCats as $_subItem) {
        $_tmp = $_subItem["SUB_CAT"];
        echo $value." => ".$_tmp."<br>";

        if (strpos(rtrim($value), rtrim($_tmp)) !== FALSE) {
            $productImgs[] = $value;
            echo "lol<br>";
        }
    }
}
当我回显所有的值时,那里似乎有一个匹配项,但它不会被添加到数组中

它打印出以下内容:微孔板leolvasók.jpg=>微孔板leolvasók

除了.jpg结尾之外,我似乎没有发现这两个字符串之间的差异,但由于strpos()的函数,它不应该计算在内。我的字符串在utf8中表示$subCats数组,对于$tmp数组,它是scandir返回给您的。该目录不受保护,因此可以读取和写入该目录和文件

知道为什么不匹配吗


提前谢谢

leolvasók!=莱奥尔瓦索克。基本上,
o
是不同的


使用您使用的字体,它们可能看起来相同。对我来说,在Firefox上,Linux下的视觉效果略有不同。

leolvasók!=莱奥尔瓦索克。基本上,
o
是不同的


使用您使用的字体,它们可能看起来相同。对我来说,在Firefox上,Linux下有一点视觉上的差异。

子类来自哪里?使用
utf8\u编码($haystack),utf8\u编码($pinder)
,请参阅$subCats来自mysqli请求。leolvasók!=leolvasók-ó和是不同的。用你使用的字体,它们看起来可能是一样的。啊,你可能是对的!这就是为什么我的stripAccents()函数对它们不起作用的原因。我会尝试一下,如果有效的话会回复你。如果有,请将其作为答案发布,以便我可以接受它!:)
$subCats
来自何处?使用
utf8\u编码($haystack),utf8\u编码($needle)
,请参阅$subCats来自mysqli请求。leolvasók!=leolvasók-ó和是不同的。用你使用的字体,它们看起来可能是一样的。啊,你可能是对的!这就是为什么我的stripAccents()函数对它们不起作用的原因。我会尝试一下,如果有效的话会回复你。如果有,请将其作为答案发布,以便我可以接受它!:)
$_subItem["SUB_CAT"] = "Microplate leolvasók"  
$value = "Microplate leolvasók.jpg"