執行運算子(Execution Operator)
執行運算子的「執行」指的是「執行系統指令」
簡單來說就是能夠透過PHP來執行CMD或是CLI的指令
而要執行的指令必須要用一對執行運算符號「`」包夾起來
由於不好找,我就不囉唆上圖了
舉例來說,我們如果要使用PHP來獲得某個資料夾的檔案內容
如果是使用CMD的話,在Mac/Linux系統下,ls -la
可以列出某個目錄的檔案清單與資訊
(如果今天是Windows可以使用dir /w
)
因為我本身是用Mac,所以我執行以下程式碼
<?php
// 在Linux系統列出資料夾內的檔案內容
$result = `ls -al`;
// 在Windows系統列出資料夾內的檔案內容
$result = `dir /w`;
echo $result;
?>
會將執行的結果回傳,可以存到變數
執行結果是獲得現在執行的這個php檔案所在的資料夾的檔案相關資訊(已排版過)
total 32
drwxr-xr-x 5 northbei admin 170 Nov 7 01:34 .
drwxrwxr-x 12 root admin 408 Oct 14 20:35 ..
-rw-r--r--@ 1 northbei admin 199 Nov 13 00:29 first.php
-rw-r--r--@ 1 northbei admin 4619 Oct 15 17:00 test.php
-rw-r--r--@ 1 northbei admin 670 Oct 15 18:14 hello.php
執行運算子必須在php.ini
設定的safe_mode關閉的情況下才能使用
另外也能使用shell_exec()
函數達到相同的功能
<?php
// 在Linux系統列出資料夾內的檔案內容
$result = shell_exec('ls -al');
// 在Windows系統列出資料夾內的檔案內容
$result = shell_exec('dir /w');
echo $result;
?>
如果在Linux環境碰到無法使用執行運算子的人,可以參考這一篇文章