【问题标题】:Unable to access user defined environment variables in php无法在php中访问用户定义的环境变量
【发布时间】:2014-08-29 22:11:57
【问题描述】:

我已经在 windows 中定义了自己的环境变量来保存文件夹路径。

示例:

IMG = C:\xampp\htdocs\img

我正在尝试通过以下方式在 php 中获取 IMG 变量的值

var_dump(getenv('MLINK_IMAGES'))

但它只是转储 bool(false)。但我可以访问预定义的环境变量

var_dump(getenv('Path'))

它给了我适当的价值。

那么它是否需要在 php.ini 中进行任何配置,或者我访问它的方式错误。

【问题讨论】:

  • 你能告诉我们你是如何导出它的吗?也许 env_var 没有正确定义^^
  • 我只是手动输入了 Windows 高级设置中的值。

标签: php environment-variables system-variable


【解决方案1】:

最近我编写了一个库来从环境变量中获取值并解析为 PHP 数据类型。该库可用于将环境变量解析为 PHP 数据类型(如转换为整数、浮点数、空值、布尔值),解析 JSON 字符串等复杂的数据结构,以及更多社区的贡献。

该库在此处可用:https://github.com/jpcercal/environment

设置您的环境变量,如果您使用的是 Web 服务器(重新启动 Apache 服务器或 PHP 内置服务器或 Nginx),否则如果您正在运行 cli 应用程序,请关闭并重新打开终端程序以加载新的环境变量到操作系统。

要使用 PHP 从环境变量中获取值,请使用我的库(独立于环境 CLI、Apache、Nginx、PHP 内置服务器等)来完成:

<?php
// ...
require "vendor/autoload.php";
// ...
var_dump(Cekurte\Environment\Environment::get("YOUR_ENV_VARIABLE_NAME"));

尽情享受吧。

【讨论】:

    【解决方案2】:

    问题的措辞方式,您使用的是Windows环境变量。 Windows 和 Web 服务器的环境变量不一样。

    如上例在 PHP 中存储环境变量:

    putenv("IMG=C:\\xampp\\htdocs\\img");
    

    要在调试时查看所有环境变量的列表:

    echo phpinfo();
    

    最后,不要为自己的使用覆盖路径变量。它由 Web 服务器使用。

    【讨论】:

    • 好的,我知道了。但是有点困惑,为什么我能够访问所有其他变量。我猜所有这些都是操作系统变量。
    猜你喜欢
    • 2014-02-11
    • 2015-09-08
    • 1970-01-01
    • 2019-05-13
    • 2021-05-05
    • 1970-01-01
    • 2017-07-31
    • 2018-03-17
    • 2023-03-15
    相关资源
    最近更新 更多