str_replace替换目标文件内容,结果目标文件全被清空了,为什么

<?php
$a=fopen(dirname(__FILE__)."/index.php","w");
echo dirname(__FILE__)."/index.php";
str_replace("你好","helllo",$a);
fclose($a);

php

3个回答

<?php
//$a=fopen(dirname(__FILE__)."/index.php","w");
$a = dirname(__FILE__)."/index.php";
file_put_contents($a,str_replace('你好','helllo',file_get_contents($a)));
//fclose($a);

帮你稍微改了一下,清空了是因为你只是打开了文件并没有读取文件里的内容哈。
效果:图片说明

fopen的打开模式是w,这会清空文件内容,应该使用a( append)模式。

而且str_replace 函数不是这么用的吧

fopen打开的文件句柄,用fread、fgets才能得到内容,再用str_replace

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐