簡體   English   中英

PHP,getenv()忽略尾隨空格

[英]PHP, getenv() ignores trailing space

我在.env文件中有一個帶尾隨空格的變量(是必需的)。 但是,函數getenv()不會返回帶有尾隨空格的字符串,而是對其進行修剪。

該變量如下所示:

KEY="blabla. " 

有什么解決方法嗎?

為了補充cbaconnier的正確答案,這里有更多信息。 PHP的getenv()函數 不會修剪值:

$ FOO='bar  ' php -r 'echo getenv("FOO") . "EOL";'
bar  EOL

如果項目(或其運行的框架)使用流行的PHP dotenv庫從文件中加載環境變量,請注意,該庫當前在從文件中加載環境變量值時會修剪它們。 啟用此行為配置的請求請求從未合並。

為了更安全地替代str_replace() ,請在值周圍使用嵌套引號,然后對引號進行trim()

FOO="'bar  '"
$foo = trim(getenv('FOO'), "'"); 

如果環境變量值包含傳遞給str_replace()的搜索字符串str_replace()除了值末尾),則該方法避免了破壞環境變量值的風險。

正如我在評論中回答的那樣,您可以通過使用不需要的另一個字符來愚蠢地實現該目標,然后替換它:

.env文件:

KEY="blabla.%20" 

config.php文件

$key = str_replace('%20', ' ', getenv('KEY'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM