2011-08-03 13 views
4

私は、ファイルを読み込み、変更を加えて、新しいファイルに書き込むために、PHPプログラムを使用しています。その後、私は、システムコールを使用して、gnuplotを呼び出す:プロットを生成するためにphpからgnuplotへのシステムコール?

system('cat sarx.conf | /usr/bin/gnuplot'); 

sarx.confは、gnuplotは、プロットを生成するコマンドがあります。問題は、私のPHPをコマンドラインから(Linuxサーバ上で)実行するとイメージを生成し、それをディスクに保存することです。しかし、私は私のブラウザ上でphpを実行することによって同じことをするときに、イメージを生成し、実際にディスクに格納せずにブラウザ上でそれを吐き出すように試みます。私が試した

もの:

  1. I iの権限設定に問題があったかもしれないが、それは助けにはならなかったのに。

  2. 私はまた、ハード、私はイメージがsarx.confになりたいのパスをコード化されました。それはどちらも役に立たなかった。

  3. 私もtmpディレクトリ---それは幸運のためにそれを探してみました!

どのように私はこれを動作させることができますか?後でプロットを表示するために私のウェブサイトがそれをつかむことができるように、このイメージをディスクに保存する必要があります。イメージをつかんでディスクに書き込むことができるPHPのものはありますか?

+0

[OK]を、私はそれが将来的に誰かを助けている場合、それが動作するようになったの これは私が使ったものです: exec( 'cat sarx.conf |/usr/bin/gnuplot'); フォルダが書き込み可能であることを確認してください。きちんとしたことはファイルを上書きするので、新しいデータを2番目に入れるWebページ上のプロットのようなことをしている場合は、PHPが明確なパスを指し示し、画像を取得することができます。私はヒートマップをやっていた! – trailblazer

答えて

1

あり、ここでgnuplotへの大きなLGPLライセンスPHPインターフェースは次のとおりです。ここでhttp://www.liuyi1.com/PHP-GNUPlot/

は、あなたが似たような行うことができます方法です:

$my_file = tempnam(); 
$handle = popen('gnuplot', 'w'); 
fwrite($this->ph, "Run some gnuplot commands here\n"); 
fwrite($this->ph, "set term png\n"); 
fwrite($this->ph, "set output ".$my_file."\n"); 
fwrite($this->ph, "replot\n"); 
flush($handle); 
pclose($handle); 
header('Content-Length: '.filesize($my_file)); 
header('Content-Type: image/png'); 
print file_get_contents($my_file); 
unlink($my_file); 
関連する問題