Nic*_*ick 1 php linux fopen fwrite
我正在Linux服务器上运行PHP,并且我正在生成bash脚本,以便在使用PHP的fopen/fwrite的Mac计算机上使用.它的工作正常,除了行结尾被写为\ r \n而不仅仅是\n,这会在我尝试在Mac上运行脚本时导致错误.
如何强制fwrite使用\n代替\ r \n进行行结尾?我已经尝试过utf8_encoding我的文本和强制二进制模式,但我似乎无法搞清楚!
$scriptFile = "/path/to/my/script.sh";
$fh = fopen($scriptFile, 'w');
fwrite($fh, "$script");
fclose($fh);
Run Code Online (Sandbox Code Playgroud)
$ script是mysql中文本字段的内容,看起来有点像这样,通常是:
# comment
echo "numphotos 1"
# comment
/opt/local/bin/gphoto2 --capture-image-and-download -F 1
# comment
echo "696969"
Run Code Online (Sandbox Code Playgroud)
在你的代码中的某个地方,你自己编写行结尾,因为fwrite()不会为你编写它们.而不是编写"\ r"或"\n"或"\ r \n",而是更改代码以使用PHP_EOL ...这将为运行PHP脚本的操作系统编写适当的行结尾.