【问题标题】:Set and Get Global Environment variables using PHP使用 PHP 设置和获取全局环境变量
【发布时间】:2020-02-15 03:39:43
【问题描述】:

我创建了简单的 PHP 脚本来设置和获取环境变量。

set.php

putenv("TEST_VAR=HelloWorld");

get.php

echo getenv('TEST_VAR');

但是执行get.php后我没有得到任何输出

我使用的是 Ubuntu 18.04。 我还尝试使用 shell 脚本设置环境变量。

test.sh

export TEST_VAR=HelloWorld

并尝试使用 get.php 获取它。但我总是把它空白。

还有什么我需要在我的脚本中添加或修改的。 或者是否需要进行任何配置更改。

【问题讨论】:

  • 您是否尝试过将getenv() 第二个参数local_only 设置为true - 只返回本地环境变量(由操作系统或putenv 设置) (@987654321 @)。
  • 是的,我也试过了。仍然是空白输出。
  • putenv 的变量仅在脚本执行期间存在。
  • @u_mulder 但是我想全局设置 env,这样我就可以在我的应用程序中整体使用它。

标签: php ubuntu ubuntu-18.04


【解决方案1】:

setenv() 和 getenv() 只能在同一个脚本中工作,当您想区分一个特定脚本的环境变量时很有用。

要在请求之间存储信息,您需要某种形式的存储。哪一个取决于您的用例。

缓存/内存存储

如果要临时存储信息,检索速度要快,数据丢失也不成问题,可以使用内存存储。

您有多种可能性,例如 Redis 和 Memcached。我不会建议 APCu,因为它不再积极开发。

永久存储

您可以将数据存储到磁盘。这比内存存储要慢,但数据丢失的可能性要小得多。

您可以使用文件存储:

set.php

<?php

file_put_contents('data/my.dat', 'My data');

get.php

<?php

echo file_get_contents('data/my.dat');

或者你可以使用数据库。

会话存储

您经常希望存储特定于某个用户的数据。其他用户看到不同的数据。您可以使用 php 会话来实现。

使用 PHP 会话的示例: https://www.php.net/manual/en/function.session-start.php

环境变量

如果您坚持使用环境变量,并希望在运行时更改它们,您可以使用phpdotenv 并写入 .env 文件。请注意,环境变量应该用于软件配置,而不是存储模式。

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多