在 PHP shell_exec() 及 system 都可以執行外部指令, 使用上它們的分別主要來自回傳及輸出。
shell_exec(): 執行外部指令並回傳執行結果, 但不會印出執行結果:
|
1 2 3 4 |
<?php $output = shell_exec("ls -lart"); echo "$output"; ?> |
而執行 shell_exec() 另一種方法是用 “" 符號 (按住 Shift 再按 1 那個), 例如 ls -l` 跟 shell_exec(“ls -l”) 是一樣的。
system(): 會執行外部指令並直接印出指令結果, 但如果指令有多行執行結果, 只會回傳最後一行, 根據 PHP 官方的講法:
|
1 2 3 4 5 6 7 8 9 |
<?php // 會輸出指令 "ls" 的結果, 並回傳最後一行結果到 $last_line, // 而全部執行結果會放到 $retval $last_line = system('ls', $retval); // Printing additional info echo ' Last line of the output: ' . $last_line . 'Return value: ' . $retval; ?> |