尝试使用phpdotenv访问.env变量时获取\n

cyej8jka  于 2023-03-07  发布在  PHP
关注(0)|答案(1)|浏览(163)

我尝试在PHP中访问.env变量,但每当我尝试回显这些变量时,我得到的值为\n
这是我的.env文件中的一个例子:

PARTNER_NAME=testing
PARTNER_PASSWORD=testing123

为了设置能够访问.env变量,我运行了以下命令:
composer require vlucas/phpdotenv
在我的php中:

declare(strict_types=1);
require __DIR__."/vendor/autoload.php";
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv-> load();
...
$_POST["partnerName"]  = getenv('PARTNER_NAME');
$_POST["partnerPassword"]  = getenv('PARTNER_PASSWORD');
8hhllhi2

8hhllhi21#

如果要读取the documentation_,则所有定义的变量现在都可以在$_ENV和$SERVER超级全局变量中使用。

$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv-> load();

$_POST["partnerName"]  = $_ENV['PARTNER_NAME'];
$_POST["partnerPassword"]  = $_ENV['PARTNER_PASSWORD'];

print_r($_POST);

结果

Array
(
    [partnerName] => testing
    [partnerPassword] => testing123
)

接下来是一节

普天和盖天

强烈建议不要使用getenv()和putenv(),因为这些函数不是线程安全的,但是仍然可以指示PHP dotenv使用这些函数。除了调用Dotenv::createImmutable之外,还可以调用Dotenv::createUnsafeImmutable,它将在后台添加PutenvAdapter。现在可以使用getenv方法和超级全局变量来使用环境变量:
如果您这样做,getenv()将工作

$dotenv = Dotenv\Dotenv::createUnsafeImmutable(__DIR__);
$dotenv-> load();

$_POST["partnerName_2"]  = getenv('PARTNER_NAME');
$_POST["partnerPassword_2"]  = getenv('PARTNER_PASSWORD');

print_r($_POST);

结果

Array
(
    [partnerName_2] => testing
    [partnerPassword_2] => testing123
)

相关问题