php - getenv(ENVIRONMENT VARIABLE) 一无所获
问题描述
在将我的项目上传到 Github 之前,我想使用环境变量隐藏我的 API 密钥。
我在 .env 文件中添加了这行代码
API_KEY=MY_API_KEY
但是当我在我的 PHP 文件中调用 API_KEY 时,
$apiKey=getenv('API_KEY');
print_r($apiKey);
它什么也没显示。我的网站崩溃了,因为代码没有获得 API 密钥。
我尝试在httpd.conf
文件底部使用 SetEnv。
SetEnv API_KEY=MY_API_KEY
但这仍然行不通。print_r()
什么都不打印。什么都没有……我做错了什么?
该文件是否应该.env
与 PHP 文件位于同一位置?我正在使用 Windows,Xampp Apache 是我的 Web 服务器。
解决方案
正如 IMSoP 在评论中提到的,我不得不做一些事情来强制 PHP 读取我的 .env 文件,我通过安装 phpdotenv 解决了这个问题。 https://github.com/vlucas/phpdotenv 这个包可以用来读取 .env 文件。
if(file_exists(dirname(__DIR__) . '/vendor/autoload.php')) {
require_once dirname(__DIR__) . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__));
$dotenv->load();
}
推荐阅读
- sql-server - 多个 TSQL 行中的多个重叠日期需要减少为汇总行
- shopify - 图像未在自定义部分使用 shopify image_picker 显示
- linux - Qt5中客户端装饰的正确方法
- javascript - .map 中的条件 if 语句
- python - Python:如何从子进程的标准输出流式传输
- java - 声明数组类变量的合适方法?
- directory - 将 Drupal 站点移动到新文件夹或 Public_Html
- reactjs - 是否可以在另一个自定义挂钩中使用从一个自定义挂钩返回的值?
- java - 无法弄清楚为什么对象的 ArrayList 没有正确排序
- python - “AttributeError:模块 'django.contrib.auth.views' 没有属性 'password_reset'” urls.py 中的错误