[英]PHP: Running a shell command from PHP?
echo shell_exec("ll");
為什么運行此代碼時php為什么不顯示文件和目錄列表?
您正在使用別名命令。 這就是為什么。 運行ls
會發生什么?
來源: 用於shell_exec和經驗的PHP頁面
ll
不是命令。 我相信echo shell_exec("ls");
將輸出目錄列表。
如果以安全模式運行PHP,也會遇到一些問題。 在這里,您可以獲得更多信息: http : //php.net/manual/en/function.shell-exec.php
shell_exec
:當PHP在安全模式下運行時,此功能被禁用。
最后,你有更多安全的替代像一個bash執行命令readdir
: http://php.net/manual/en/function.readdir.php 。 此功能可讀取特定目錄中的文件。
readdir($dir_handle)
示例:
<?php
if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Entries:\n";
while (false !== ($entry = readdir($handle))) {
echo "$entry\n";
}
closedir($handle);
}
?>
ll通常作為默認別名添加到bash中(在.bashrc文件中)。
要再次檢查是否存在這種情況,請在終端中鍵入以下內容:
type -a ll
您的shell會告訴您ll是別名還是實際程序。
PHP在未安裝默認別名的環境中運行。
您可能需要的命令表達式是:
shell_exec("ls -l");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.