framework
framework copied to clipboard
读取.env文件内容残缺
操作环境
php版本
% php -v
PHP 7.4.33 (cli) (built: Dec 27 2023 06:53:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
电脑系统macbook
% system_profiler SPHardwareDataType
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro16,2
Processor Name: Quad-Core Intel Core i5
Processor Speed: 2 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 512 KB
L3 Cache: 6 MB
Hyper-Threading Technology: Enabled
Memory: 16 GB
System Firmware Version: 1968.120.12.0.0 (iBridge: 20.16.5058.0.0,0)
OS Loader Version: 577~170
Serial Number (system): C02D4P4CML7H
Hardware UUID: 81E52735-3842-5754-83EE-8C9C29F4A291
Provisioning UDID: 81E52735-3842-5754-83EE-8C9C29F4A291
Activation Lock Status: Enabled
复现方式:
- 全新安装thinkphp6
- cp .example.env .env
- 使用file_get_contents函数和fopen逐行读取内容是不完成
echo "<?php var_dump(file_get_contents('.env'));"> test.php
php test.php
default_lang = zh-cn"ia/Shanghai
- 使用php-cli 也无法获取内容
% php -r "var_dump(file_get_contents('.env'));"
default_lang = zh-cn"ia/Shangha
- tail -n 1 .env 命令行也无法读取到指定行内容
% tail -n 1 .env
default_lang = zh-cn%
- 使用
cat .env也无法获取到内容
% cat .env
default_lang = zh-cn%
文件属性
% file .env
.env: ASCII text, with CR line terminators
% stat .env
16777225 82699143 -rw-r--r-- 1 admin staff 0 231 "Jun 12 11:40:12 2024" "Jun 12 11:40:12 2024" "Jun 12 11:40:12 2024" "Jun 12 11:40:12 2024" 4096 8 0 .env
目前我的解决方案:
重写编辑一下.env就可以进行读取
尝试使用其他语言进行读取python
f = open("env",encoding = "utf-8")
#输出读取到的数据
print(f.read())
运行结果是可以读到完整的内容
手动编辑下吧 https://github.com/top-think/think/pull/1061
强烈建议考虑更换掉 tp 的 env 解析引擎 [Dog!]
我自己维护的包就用它了:vlucas/phpdotenv
强烈建议考虑更换掉 tp 的 env 解析引擎 [Dog!]
我自己维护的包就用它了:
vlucas/phpdotenv
抱歉,我不是env解析引擎问题,是我通过php自带函数进行读取.env文件内容,读取不到
Close of https://github.com/top-think/think/commit/9df20a8707624712f3c3deda96813e676cb99bde