我试图从Debian上的PHP脚本中找出系统区域设置。我的方式:
<?php
$out = shell_exec('locale');
print_r($out);
?>
结果:
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
...
但是当我写“#loc;&#39;我的系统控制台中的命令我得到了正确的&#39;结果:
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
...
从PHP脚本获取系统区域设置的正确方法是什么?
总体目标: 在请求中,我接受一个文件路径,它可以包含西里尔符号。然后我需要访问此目录中的文件。所以我想让我的php脚本适用于使用不同语言环境的系统(例如ru_Utf8,Koi8-r)。
答案 0 :(得分:1)
从PHP获取真正系统区域设置的一种方法:
1)创建一个包含locale
命令的.sh脚本(当然还有#!/bin/bash
标题)
2)使用刚刚创建的sh脚本添加到/ etc / sudoers www-data ALL=NOPASSWD: /path/to/locale.sh
3)将您的PHP shell_exec
更新为$out = shell_exec('sudo /bin/bash /path/to/locale.sh')
这将允许区域设置以root身份执行,而无需密码。