ホームページ  >  記事  >  バックエンド開発  >  PHP の exec 関数とshell_exec 関数の違い、execshell_exec_PHP チュートリアル

PHP の exec 関数とshell_exec 関数の違い、execshell_exec_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:20:35984ブラウズ

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 行だけであれば問題ありません。どちらを使用しますか。

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を再起動し、大丈夫ですよ

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/866665.html技術記事 PHP の exec 関数とshell_exec 関数の違いは、両方の execshell_exec 関数が Linux コマンド関数を実行することです。違いは、exec が取得できるのは最後の行番号のみであることです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。