PHP中exec函數和shell_exec函數的區別_php執行個體

來源:互聯網
上載者:User

這兩個函數都是執行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函數,當然,如果命令執行結果只有一行返回資訊,那麼使用哪個都無所謂。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.