Php 当w+;指定为模式
考虑到在windows计算机上运行的以下内容,我希望在文档根目录中创建一个文件,但事实并非如此Php 当w+;指定为模式,php,fopen,Php,Fopen,考虑到在windows计算机上运行的以下内容,我希望在文档根目录中创建一个文件,但事实并非如此 $file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat'); $handle = fopen($file,'w+b'); //using binary mode for windows fwrite($handle,'test'); fclose($handle); 我遵循这里给出的文档,因为我正在处理的项目运行的是php版本4,所以我不
$file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat');
$handle = fopen($file,'w+b'); //using binary mode for windows
fwrite($handle,'test');
fclose($handle);
我遵循这里给出的文档,因为我正在处理的项目运行的是php版本4,所以我不能使用file_put_contents()。我也尝试了它,没有指定二进制模式,得到了相同的结果
我使用了echo
来输出带有和不带str\u replace
的$file变量。如果不使用反斜杠,字符串将包含反斜杠\
,根据文档,字符串将包含正斜杠/
,如果您不想转义反斜杠\
,则可以使用正斜杠作为windows的两个方面。由于dirname(\uuuuu FILE\uuuuuuuuuuuuu)
返回未经调整的反斜杠,因此我将使用str\u replace
修复它。$file
的内容正是我所期望的,正在解释的文件的当前路径附加了/swsql.bat/
错误日志中也没有错误
编辑
更改$file=str\u replace(“\\”,“/”,dirname(\uu file.'/swsql.bat”)代码>
到
$file=str\u replace(“\\\”,“/”,dirname(\uuu file\uuuuuuuuu))。/swsql.bat'代码>修复了该问题
`改变
$file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat');
到
已修复此问题。您的脚本是否具有该目录的写入权限?应该是这样,尽管我不完全确定如何选中确保$file
保存您认为它保存的值。其他一切对我来说都很好,虽然我不得不承认我从来没有写过任何PHP代码,只是读过,所以我在这里不是专家。看起来你用stru_replace以错误的方式转换斜杠。。。尝试不使用它并将最后一个斜杠更改为\\@rfsbsb请查看我的最后一次编辑
$file = str_replace("\\",'/',dirname(__FILE__)).'/swsql.bat';