framework icon indicating copy to clipboard operation
framework copied to clipboard

读取.env文件内容残缺

Open chihqiang opened this issue 1 year ago • 4 comments

操作环境

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

复现方式:

  1. 全新安装thinkphp6
  2. cp .example.env .env
  3. 使用file_get_contents函数和fopen逐行读取内容是不完成
echo "<?php var_dump(file_get_contents('.env'));"> test.php
php test.php
default_lang = zh-cn"ia/Shanghai
  1. 使用php-cli 也无法获取内容
% php -r "var_dump(file_get_contents('.env'));" 
default_lang = zh-cn"ia/Shangha
  1. tail -n 1 .env 命令行也无法读取到指定行内容
% tail -n 1 .env
default_lang = zh-cn%  
  1. 使用 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就可以进行读取

chihqiang avatar Jun 12 '24 04:06 chihqiang

尝试使用其他语言进行读取python

f = open("env",encoding = "utf-8")
#输出读取到的数据
print(f.read())

运行结果是可以读到完整的内容

chihqiang avatar Jun 12 '24 04:06 chihqiang

手动编辑下吧 https://github.com/top-think/think/pull/1061

sy-records avatar Jun 12 '24 05:06 sy-records

强烈建议考虑更换掉 tp 的 env 解析引擎 [Dog!]

我自己维护的包就用它了:vlucas/phpdotenv

NHZEX avatar Jun 21 '24 16:06 NHZEX

强烈建议考虑更换掉 tp 的 env 解析引擎 [Dog!]

我自己维护的包就用它了:vlucas/phpdotenv

抱歉,我不是env解析引擎问题,是我通过php自带函数进行读取.env文件内容,读取不到

chihqiang avatar Jun 24 '24 00:06 chihqiang

Close of https://github.com/top-think/think/commit/9df20a8707624712f3c3deda96813e676cb99bde

big-dream avatar Jul 24 '24 05:07 big-dream