繁体   English   中英

strpos()stripos()问题php

[英]strpos() stripos() problems php

我知道这是一个常规问题,我不打算加入一群不知道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>";
        }
    }
}

它基本上将图片存储在tmp数组中,然后循环遍历所有subCats数组以查看是否存在匹配项。 例如:

$_subItem["SUB_CAT"] = "Microplate leolvasók"  
$value = "Microplate leolvasók.jpg"

当我回显所有值时,似乎有一个匹配项,但是无论如何都不会将其添加到数组中。

它打印出以下内容: Microplateleolvasók.jpg=> Microplateleolvasók

除了.jpg结尾,我似乎没有发现两个字符串之间的区别,但是由于strpos()的功能,它不应该算在内。 我的字符串在utf8中,用于$ subCats数组,对于$ tmp数组,这是scandir给您的。 该目录不受保护,它可以读取和写入文件。

知道为什么不匹配吗?

提前致谢!

leolvasók!=leolvasók中'o'的重音。 基本上ó是不同的。

使用的字体看起来可能相同。 对我来说,在Linux下的Firefox上,视觉上有些许差异。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM