susukinosu

エンジニアリングって、何だよ

exec()とsystem(),passthru()の違いって何ぞや

もう7月が終わろうとしています。

MySQLでIMPORTみたいなことができないか?と聞かれたならば

mysqlimportとか使えば良いじゃん、となるかと思います。

 

mysqlimport自体は

https://dev.mysql.com/doc/refman/5.1/ja/mysqlimport.html に。

 

さて話は変わって、PHPを使ったコマンドの実行には

があったり。

いつ、どれを使えばいいのでしょう?

 

各々の働きは、

exec()は外部のプログラムを実行して、引数に入れてくれる関数

system()は外部のプログラムを実行、標準ストリームに出力する関数

passthru()はexec()やsystem()の代わりとして用いられる関数

となっています。

 

普通、コマンド実行したいだけならば、exec()関数を用いるみたい。

返り値はsystem()関数と同じ、コマンド実行結果の最後の行なのですが、

結果を吐くところが標準出力なのかどうか、という違い。

 

 

passthru()関数は、すべての結果を返してくれるもの。

manualでは、

content-type を image/gif に設定して、gifを出力するpbmplus プログラムを呼び出すことにより、直接画像を出力する PHP スクリプトを作成 することができます。

と書かれています。

 

コマンドからのすべての結果(バイナリデータ)を受け取りたい場合に使用します。

加工されていない生データを受け取りたいときって、どういうときなのかな?

 

以上、大雑把に書き記しました。