今天突然接到集团的要求,因为新广告法规出台,要求本人所在的下属公司删除官方网站里面的违反规定的内容,因为现在使用的官网其实就是一些静态页面,一共不到30个页面,一开始打算用Dreamweaver批量替换下就完了,但是接到文档一看就傻眼了,几十个关键文字都要整改,就算是用Dreamweaver也得整半天,于是打算写个简单的php脚本解决这个问题。废话不多说,开工!
思路如下,把所有的静态页面放在php项目下的某个文件夹中,然后利用php读取此文件夹下的所有文件并获取文件名存成一个数组,循环数组使用file_get_contents读取内容,然后把所有要修改的关键字放在一个数组中循环使用str_replace进行修改,最后使用file_put_contents()把修改后的内容写入原来的文件。
由于只是个简单的脚本,所以也懒得判断参数类型了,使用时自己注意下就完了,也没有封装成类,就是写了两个方法,一个获取文件名,一个修改内容。测试用程序如下。
<?php
/**
* Created by PhpStorm.
* User: meng
* Date: 16/10/17
* Time: 下午5:14
*/
function getfile($name){
$handle = opendir($name);
$filearr = array();
while (($file = readdir($handle)) !== false){
if($file != ‘.‘ && $file != ‘..‘) {
array_push($filearr,$file);
}
}
closedir($handle);
return $filearr;
}
function change($folder,$filearr,$changetext){
foreach ($filearr AS $key=>$value){
$filename = $folder.‘/‘.$value;
$content = file_get_contents($filename);
foreach($changetext AS $key=>$val){
$content = str_replace($key, $val, $content);
}
file_put_contents($filename, $content);
sleep(1);
}
}
$changetest = array(
‘最大的‘=>‘‘,
‘最牛的‘=>‘‘,
‘首家‘=>‘第一‘
);
$name = ‘change‘;
$filesarr = getfile($name);
change($name, $filesarr, $changetest);