gpt4 book ai didi

php - 如何让 str_replace 识别使用 glob 检索的文件名中的变音符号(在 Mac 上)?

转载 作者:行者123 更新时间:2023-11-29 13:50:17 25 4
gpt4 key购买 nike

我正在使用下面的代码从具有 glob 的目录中读取文件名。

我想遍历它们并将变音字符替换为其他字符。

但是,str_replace 甚至没有找到变音字符,因此我假设它们采用其他某种字符编码。

这在 Windows 上一直有效,但我现在在 Mac 上,所以我尝试使用 iconv 从“macintosh”转换为“UTF-8”,但没有成功,见下文。

如果我在代码中定义了一个带有变音符号的字符串,然后 str_replace 发现变音符号没问题,但在使用 glob() 检索的字符串中没有。

如何让 str_replace 识别文件名字符串中的变音字符,以便替换它们?

$pathAndFileNames = glob($directory . '/*.php');
if (count($pathAndFileNames) > 0) {
foreach ($pathAndFileNames as $oldName) {

$newName = str_replace('ü', 'ue', $oldName);
echo $newName; //outputs "rücktest.php"

$oldName2 = "rücktest.php";
$newName2 = str_replace('ü', 'ue', $oldName2);
echo $newName2; //outputs "ruecktest.php"

}
}

最佳答案

我在我的机器上测试了这段代码(提醒你是 Ubuntu),没有出现这样的问题。我有一个解决方案供您尝试。确保您的脚本以 UTF-8 编码保存。

当使用 Western-8859-15 编码保存文件时,我可以复制您的问题,但是当使用 UTF-8 编码保存文件时,脚本的行为与您预期的一样。

检查您的编辑器首选项并保存为功能。

关于php - 如何让 str_replace 识别使用 glob 检索的文件名中的变音符号(在 Mac 上)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5068590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com