簡體   English   中英

PHP:從PHP運行shell命令?

[英]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執行命令readdirhttp://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.

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