簡體   English   中英

PHP中的shell_exec無法正常工作

[英]shell_exec in PHP is not working

shell_exec()在我的本地主機上不起作用。 我閱讀了很多網站來解決此問題,但是找不到解決方案。 這段代碼:

    $output = shell_exec("env");
    print "<pre>$output</pre>";

不提供任何輸出。

我檢查了php.ini disable_functions但未禁用shell_exec 我沒有執行error_reporting = E_ALL但再次沒有輸出(沒有錯誤)。 我所得到的只是一個空白屏幕。 甚至safe_mode已關閉。

如果我寫echo "BULB"; 在上面的代碼之后,它正在打印“ BULB”。

可能是什么問題?

您希望從env獲得什么信息? 從您的評論來看,在我看來,您似乎正在嘗試在Windows系統上使用Linux命令-永遠行不通。

在Linux系統上,像這樣的env命令本身會返回已定義的環境變量的列表。 但是, env在Windows中不是有效命令。

如果您只是在尋找環境變量列表,那么實際上可以在PHP中獲得它,而不必執行shell命令。 PHP具有內置的全局變量$_ENV ,其中包含程序聲明時定義的所有環境變量的副本。 只需print_r($_ENV)即可查看它們。

另一方面,如果由於某些原因確實需要使用shell_exec() ,則需要考慮所使用的操作系統。 在Linux上,您可以使用env命令。 Windows上的等效set沒有任何參數。 因此,您的代碼變為:

$output = shell_exec("set");

請注意,輸出格式可能與Linux上的格式不同,因此,如果要解析它,則該代碼也必須更改。

如果您需要代碼能夠在多個平台上運行,則需要在shell_exec()調用之前編寫其他代碼,以確定操作系統並制定出要使用的正確命令。

暫無
暫無

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

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