【原创】PHP脚本中如何获得Linux系统环境变量?
问题背景:
如题所示,PHP脚本中如何获得Linux系统环境变量?
解决方案:
PHP有一套系列函数可以用来执行外部命令的,如此我们就可以轻松上述功能,这套系列函数大致有:exec()、passthru()、system()等等,具体请参阅PHP手册。
代码封装:
class Tool { /** * @brief 获取Linux系统环境变量 * * - Tool::getLinuxEnvironmentVar() : 留空,返回所有的环境变量 * - Tool::getLinuxEnvironmentVar('path') : 返回PATH环境变量 * - Tool::getLinuxEnvironmentVar('mail') : 返回MAIL环境变量 * * @param string $key 对应linux环境变量的key,支持小写. * * @return array|string */ static public function getLinuxEnvironmentVar($key = '') { //exclude windows system if('\\' === DIRECTORY_SEPARATOR) return array(); exec("env", $output, $status); if(!is_string($key) || $status <> 0 || empty($output)) return array(); $vars = array(); foreach($output as $k => $v) { list($_k, $_v) = explode('=', $v); $vars[$_k] = $_v; } if(empty($key)) return $vars; $new_key = strtoupper($key); if(array_key_exists($new_key, $vars)) return $vars[$new_key]; return array(); } }
注意事项:
exec()、passthru()、system()等函数PHP出于安全考虑默认是禁止的,所以必须修改 php.ini 配置文件放行这批函数,用哪个函数就放行那个函数,如何放行,移步作者在workerman的类似回复贴: https://wenda.workerman.net/question/4776
版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。
发表评论: