thx!
system()とpassthru()の違いってなんでしょ?使いどころってなんでしょ?
mpywが👍を押しています
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
systemは最後の行を返す仕様なので、行の区切りを探す処理を行ったり、そのためのデータをメモリに保存する必要があります。passthruはそのようなことはしませんので処理的にも無駄が少ないですし、メモリ使用量も抑えられます。
特に画像など大きなバイナリデータを出力するコマンドでは改行コードに相当するデータが含まれなくてメモリ使用量が大きくなることがあります。
PHP
1<?php 2ini_set('memory_limit', '1M'); 3 4$cmd = "php -r 'for(\$i=0;\$i<2000;\$i++){print(str_repeat(\"a\", 1000));}'"; // 2MBの'a'を改行なしに出力します。 5 6// system($cmd); // systemだと途中でメモリ不足のエラーになります 7passthru($cmd);
投稿2016/03/03 01:30
総合スコア1177
0
system()は実行結果がエラーでもそのまま流しますが、
passthru()はエラーを流しません。
こんな感じで良いですかね。
投稿2016/03/03 01:22
総合スコア767
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/03 02:39 編集