這篇文章主要介紹了PHP中exec函數和shell_exec函數的區別,這兩個函數是非常危險的函數,一般情況都是被禁用的,當然特殊情況下也會使用,需要的朋友可以參考下
這兩個函數都是執行Linux命令函數,不同的是獲取返回結果不一樣,exec只能獲取最后一行數據,shell_execu則可以獲取全部數據。
假如腳本路徑下有如下文件:
- -bash-4.1# ll
- 總用量 12
- -rw-rw-r--. 1 www web 133 7月 16 15:00 a.php
- -rw-r--r--. 1 lee web 59 2月 29 17:05 b.php
- -rw-r--r--. 1 lee web 81 3月 8 17:00 c.php
exec例子,代碼如下:
- <?php
- /**
- * exec與shell_exec的區別
- * 瓊臺博客
- */
- $data = exec('/bin/ls -l');
- echo '<pre>';
- print_r($data);
- echo '</pre>';
- ?>
執行結果,代碼如下:
-rw-r--r--. 1 lee web 81 Mar 8 17:00 c.php
shell_exec例子,代碼如下:
- <?php
- /**
- * exec與shell_exec的區別
- * 瓊臺博客
- */
- $data = shell_exec('/bin/ls -l');
- echo '<pre>';
- print_r($data);
- echo '</pre>';
- ?>
執行結果,代碼如下:
- total 12
- -rw-rw-r--. 1 www web 139 Jul 16 2012 a.php
- -rw-r--r--. 1 lee web 59 Feb 29 17:05 b.php
- -rw-r--r--. 1 lee web 81 Mar 8 17:00 c.php
所以平時使用exec函數的童鞋注意了,如果你需要獲取全部返回信息,就應該使用shell_exec函數,當然,如果命令執行結果只有一行返回信息,那么使用哪個都無所謂。
新聞熱點
疑難解答