PHPのexec関数とshell_exec関数、execshell_execの違い
これら 2 つの関数はどちらも Linux コマンド関数を実行します。違いは、exec はデータの最後の行のみを取得できるのに対し、shell_exec はすべてのデータを取得できるという点です。
スクリプトパスに以下のファイルがある場合:
コードをコピーします コードは次のとおりです:
-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とshell_execの違い
*瓊台ブログ
*/
$data = exec('/bin/ls -l');
echo '
';<br>
print_r($data);<br>
echo '
';
?>
実行結果
コードをコピーします コードは次のとおりです:
-rw-r--r-- 1 lee web 81 3 月 8 日 17:00 c.php
shell_exec の例
コードをコピーします コードは次のとおりです:
/**
* execとshell_execの違い
*瓊台ブログ
*/
$data = shell_exec('/bin/ls -l');
echo '
';<br>
print_r($data);<br>
echo '
';
?>
実行結果
コードをコピーします コードは次のとおりです:
合計12個
-rw-rw-r--. 1 www ウェブ 139 2012 年 7 月 16 日 a.php
-rw-r--r-- 1 リーウェブ 59 2月29日 17:05 b.php
-rw-r--r-- 1 lee web 81 3 月 8 日 17:00 c.php
したがって、通常 exec 関数を使用する人は注意してください。すべての戻り値を取得する必要がある場合は、コマンド実行結果の戻り値が 1 行だけであれば問題ありません。どちらを使用しますか。
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 ");
各コマンドの後にセミコロンを追加します
最初にセーフモードをオフにすることですsafe_mode = off
次に無効な機能のリストを確認します
disable_functions = proc_open、popen、exec、system、shell_exec、passthru
ここでexecを削除する必要があります
Apacheを再起動し、大丈夫ですよ
http://www.bkjia.com/PHPjc/866665.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/866665.html技術記事 PHP の exec 関数とshell_exec 関数の違いは、両方の execshell_exec 関数が Linux コマンド関数を実行することです。違いは、exec が取得できるのは最後の行番号のみであることです。