程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中exec函數和shell_exec函數的區別,execshell_exec

PHP中exec函數和shell_exec函數的區別,execshell_exec

編輯:關於PHP編程

PHP中exec函數和shell_exec函數的區別,execshell_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函數,當然,如果命令執行結果只有一行返回信息,那麼使用哪個都無所謂。


linux 中php執行shell_exec函數

shell_exec("/usr/local/bin/pdf2swf /home/xiazai/03.pdf -o /home/xiazai/1.swf; /usr/local/bin/jpeg2swf /home/xiazai/2.jpg -o /home/xiazai/2.swf ");
每條命令後加上分號
 

PHPini開啟EXEC函數怎開啟

首先是 要關掉 安全模式 safe_mode = off

然後在看看 禁用函數列表
disable_functions = proc_open, popen, exec, system, shell_exec, passthru

這裡要把 exec 去掉
重啟 apache 就OK了
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved