PHP怎么实现替换整个文件内容

PHP怎么实现替换整个文件内容,第1张

//芹哪差简单写法(未考虑大文件,文件嫌皮不存在的情况)

$content =file_get_contents('123.php')

//复杂替缓乎换可以考虑使用正则。

$content = str_replace('我是123','我也是123',$content)

file_put_contents('123.php',$content)

$content = file_get_contents($file)/猜拍/读银态文穗搏羡件

$content = $content . '正在修改'//修改文件

file_put_contents($file, $content)//保存文件

命令行下 “ren *.php *.htm” 就可以啊

如果不只是为了修改文件名 而是为了由动态页面生成静态页面 也就是说生中闭成的htm是那个php的预览效果页面

那么具体的还得根据你的php内部代码处理

看你提供的那段代码好像就是实现了一个修改文件名的功能 如果你不愿用命令 就是想用php实现这一功能的话 可以这么写:

$path="./"

$d = dir($path)

while($f=$d->read()) {

if($f=="."||$f=="..")continue//去掉目录列表中的.和..

$filename=rand(1111111111,9999999999).".htm"//从1111111111-9999999999 中产生一个随机数作为文件名

copy($f,$filename)

}

这个就可以实现你说的功能

但是还有点不是很完善的 你还可以设置输出的路径,检查拷贝状态 多少文件成功多少失败等等 如下

$path="./"

$outputpath="out/"//输出目录

@mkdir($outpath)//如果输出目录不存在 则创建 已经存在创建失败,但不显示出错信息

$d = dir($path)

$i=0//记录文件数量

while($f=$d->read()) {

if($f=="."||$f=="..")continue//去掉目录列表中的.和..

$i++

$filename=$outpath.rand(1111111111,9999999999).".htm"//从1111111111-9999999999 中产生一个随机数作为文件名

if(copy($f,$filename))$j++//拷贝成功的文件个数+1

else continue

}

echo "共 $i 个文件 成功拷贝 $j 个文件"

我看到你的消息了 你是要获取所有的页面的预览效果

只需要在copy的文件加上预览的路径就可以了

<?

$path="./"//文件读取目录

$d = dir($path)

$i=0//记录文件数量

while($f=$d->read()) {

if($f=="."||$f==".."||$f=="copyfile.php")continue//去掉目录列表中的.和..以及当前执行的文件

$i++

$filename=str_replace(".php",".htm",$f)//将文件的.php替换成.htm

if(copy("".$f,$filename))$j++/卖败裂/拷贝成功的文件个数+1

else continue

}

echo "共 $i 个文件 成功拷贝 $j 个文件"

?>

在用的时候确保你的目录先枯让所有的文件都能顺利的的执行 我在测试的时候因为目录中有几个文件有问题 导致一直不成功 去掉了那几个文件就很快了

在对文件名进行处理的时候 如果你的目录下面还有其他类型的文件,建议这样写 :

$filename=$f.".html"//先将文件扩展名增加.html 比如a.php-》a.php.html

$filename=str_replace(".php.","",$filename)//将".php"去掉 a.php.html->a.html

这样可以避免将里面的非php的文件覆盖


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12302570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存