読者です 読者をやめる 読者になる 読者になる

炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

bamcompile1.21でphpをEXE(実行ファイル化)に変換してスタンドアロンアプリを作成

お役立ち情報

下記のようなCSVファイルを読み込んでファイル生成するphpを、
bamcompileを利用してEXEファイルを作成した場合、
Wrong parameter count for fgetcsv() エラーが返される。
例)
phpファイル】

$fp_csv = fopen('test.csv', 'r');
$i = 0;
while($data = fgetcsv($fp_csv)){
$j = 0;
foreach($data as $key => $value) {
$d[$i][$j] = $value;
$j++;
}
$i++;
}
$fp = fopen('test.txt', 'w');
for($i = 0; $i < 3; $i++) {
for($j = 0; $j < 2; $j++) {
fwrite($fp, $d[$i][$j]);
}
}
fclose($fp);
?>

【test.csv

1,test1
2,test2
3,test3

これは、fgetcsv関数の第2引数(length:CSVファイルにある最大行長を指定)を指定していない為におこる。
PHP5では、第2引数は任意の項目(オプション)となったが、
bamcompileでEXEファイルを作成する際にはfgetcsv関数の第2引数を必須で入力する必要がある。
例)で用いたphpファイルの以下のコードを下記のように修正するとエラーが解消される。
while($data = fgetcsv($fp_csv)) :修正前

while($data = fgetcsv($fp_csv, 10000)) :修正後
第2引数に「0」と入力しても同様のエラーが起こるので注意しよう。