gpt4 book ai didi

PHP glob 目录 UTF-8

转载 作者:搜寻专家 更新时间:2023-10-31 20:40:24 24 4
gpt4 key购买 nike

我正在尝试获取可变路径中的所有文件...atm 我正在使用 glob(),但我就是找不到打开其中包含 ä ü ö 的路径的方法...

我尝试了很多解码/编码,但似乎都不起作用...当我更改文件名和变量中的 ä ü ö 时,我得到了正确的答案......所以它必须是 smth with utf8 chars......我猜

PHP 脚本

// Get the variable via an Ajax post

$town =$_POST['town']; // For example "Bankdrücken"

$pfad = 'maps/'. $country.'/'. $town .'/*.jpg';

$files = glob($pfad);
$n_files = count($files);

$erg = new stdClass();
$erg->files = $files;
$erg->n_files = $n_files;

echo json_encode($erg);
return;

JavaScript

.success(function(data){
console.log(data);
...

这不会返回 .../Bankdrücken,但是 .../Bankdr\u00fccken

当我执行 jQuery.parseJson(data);它返回 ./Bankdrücken,但因为这是在客户端,所以服务器端已经失败了。我只是做对了。

这是一个真实的例子...如果文件路径中的 $variable 包含 ä ö ü -> glob() 不会给我任何文件...//不,我正在打印从 Ajax 调用返回的内容...

试验一(带 ü):

"标准类对象( [文件] => 数组 ( )

[n_files] => 0
[filename] => workout_uebungen/Brust/Liegestützen/

)“/*********************************************/路径二(我将文件名从 Liegestützen => Liegestuetzen 更改为 $var 从 Liegestützen => Liegestuetzen)

"标准类对象( [文件] => 数组 ( [0] => workout_uebungen/Brust/Liegestuetzen/1.jpg [1] => workout_uebungen/Brust/Liegestuetzen/2.jpg )

[n_files] => 2
[filename] => workout_uebungen/Brust/Liegestuetzen/

)"

所以试验 2 给出了正确的答案,但我不想更改我所有的文件......而且这对我来说是一个肮脏的解决方案......

最佳答案

我终于让它工作了......

在执行 glob(); 之前,我将字符串转换为 ISO 8859-1 ...但实际上我必须在 glob() 之后将其编码回来,因此回调 ( JSON 方法)能够处理数据...

Alexey palamar 的解决方案做了一些工作,但由于字符串已经是 UTF-8,我不得不 .. 它的工作方式如下:

$string = $encoding->toISO8859($string);

$string = iconv("UTF-8", "ISO-8859-1", $string);

然后执行 glob()

$files = glob($path);

重新转换:

for($i=0; $i < $n_files ; $i++){

$files[$i] = utf8_encode($files[$i]);
}

关于PHP glob 目录 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23140358/

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