如果在Windows机器上运行以下,我希望在文档根目录中创建一个文件,但它不是。
$file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat');
$handle = fopen($file,'w+b'); //using binary mode for windows
fwrite($handle,'test');
fclose($handle);
我正在关注此处提供的文档http://www.php.net/manual/en/function.fopen.php,因为我正在处理的项目是运行php版本4,所以我无法使用file_put_contents()。我也试过它而没有指定二进制模式并获得相同的结果。
我使用echo
输出带有和不带str_replace
的$ file变量。没有它,字符串包含反斜杠\
,如果您不想转义反斜杠/
,根据文档,字符串包含正斜杠\\
,因为Windows可以使用正斜杠。由于dirname(__FILE__)
返回未转义的反斜杠,我正在使用str_replace
修复它。 $file
的内容正是我所期望的,被解释的文件的当前路径附加/swsql.bat/
。错误日志中也没有错误。
修改
将$file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat');
更改为
$file = str_replace("\\",'/',dirname(__FILE__)).'/swsql.bat';
解决了这个问题。
`
答案 0 :(得分:0)
更改
$file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat');
到
$file = str_replace("\\",'/',dirname(__FILE__)).'/swsql.bat';
解决了这个问题。