LinuxサーバーでPHPを実行しており、PHPのfopen/fwriteを使用してMacコンピューターで使用するbashスクリプトを生成しています。行末が\nではなく\r\ nとして書き込まれていることを除いて、正常に機能しています。これにより、Macでスクリプトを実行しようとするとエラーが発生します。
行末に\r\nの代わりに\nを使用するようにfwriteを強制するにはどうすればよいですか?テキストをutf8_encodingして、バイナリモードを強制しようとしましたが、理解できないようです。
$scriptFile = "/path/to/my/script.sh";
$fh = fopen($scriptFile, 'w');
fwrite($fh, "$script");
fclose($fh);
$ scriptは、mysqlのテキストフィールドのコンテンツであり、通常は次のようになります。
# comment
echo "numphotos 1"
# comment
/opt/local/bin/gphoto2 --capture-image-and-download -F 1
# comment
echo "696969"