fortranで作成したバイナリのデータをPHPで読み込む
自分用の覚書。Cやfortran等で作成された倍精度浮動小数点実数を保存したバイナリデータをPHPを用いて読み込む方法が、意外とGoogle先生で安直には見つからなかったのでメモ。
データを作成したfortran側のソースコード
PROGRAM main REAL(KIND(0D0)),DIMENSION(2)::a a(1)=ASIN(1D0) a(2)=ACOS(-1D0) WRITE(9)a END PROGRAM
<?php $handle=fopen("fort.9","rb"); if ( $handle ) { // fortranの行頭にある行のサイズデータ(4バイト)を取得する $tmp= fread($handle,4); $tmp= unpack("l",$tmp); $sizeByte= $tmp[1]; // データ読み込みの本体 $tmp= fread($handle,$sizeByte); $data= unpack("d*",$tmp); // 行末4バイトを読み込む $tmp= fread($handle,4); }