gpt4 book ai didi

php - 从 Linux 上的 PHP 脚本中找出系统区域设置

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:58 28 4
gpt4 key购买 nike

我正在尝试从 Debian 上的 PHP 脚本中找出系统区域设置。我的做法:

    <?php
$out = shell_exec('locale');
print_r($out);
?>

结果:

    LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
...

但是当我在系统控制台中编写“locale”命令时,我得到了“正确”的结果:

    LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
...

从 PHP 脚本获取系统语言环境的正确方法是什么?

总体目的:在请求中,我接受一个文件路径,它可以包含西里尔符号。然后我需要访问这个目录中的文件。所以我想让我的 php 脚本与使用不同区域设置的系统一起工作(例如 ru_Utf8、Koi8-r)。

最佳答案

一种方法从 PHP 获取真正的系统语言环境:

1) 创建一个包含 locale 命令(当然还有 #!/bin/bash header )的 .sh 脚本

2) 添加到/etc/sudoers www-data ALL=NOPASSWD:/path/to/locale.sh 使用您刚刚创建的 sh 脚本

3) 将您的 PHP shell_exec 更新为 $out = shell_exec('sudo/bin/bash/path/to/locale.sh')

这将允许 locale 以 root 身份执行,而无需密码。

关于php - 从 Linux 上的 PHP 脚本中找出系统区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33107326/

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