Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当w+;指定为模式_Php_Fopen - Fatal编程技术网

Php 当w+;指定为模式

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,所以我不

考虑到在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_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';