php批量替换内容或指定目录下所有文件内容
发布:smiling 来源: PHP粉丝网 添加日期:2013-12-31 16:31:28 浏览: 评论:0
要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替换了,我们先看最基本的.
strtr() 函数转换字符串中特定的字符。
语法:strtr(string,from,to)或者strtr(string,array),代码如下:
- $addr=strtr($addr,"","aao"); //第一种调用方法
- $trans=array("hello"=>"hi","hi"=>"hello"); //定义一个转换数组
- echo strtr("hi all, i said hello",$trans); //第二种调用方法
- //普通字符串
- echo strtr("hilla warld","ia","eo");
- //数组
- $arr = array("hello" => "hi", "world" => "earth");
- echo strtr("hello world",$arr);
如果 from 和 to 的长度不同,则格式化为最短的长度,再看一个简单的函数,代码如下:
- function file_modify($search_contents, $replace_contents, $filename)
- {
- $fp = file_get_contents($filename);
- $new_fp = str_replace($search_contents, $replace_contents, $fp);
- file_put_contents($filename, $new_fp);
- }
- // +------ 用法
- file_modify('sdf hjhj', 'sdf_test hjhj_test', 'test10.html');
或者直接用如下这个:
- preg_replace('|(<div class="body">)(^<]+)(</div>)|iSU', "${1}" . 替换后的内容 . "$3", $str);
上面我所说的所有问题都只会替换一个文件里面的,那么我想替换一个站点所有目录里面文件指定字符,那么我们来看下面这个函数,代码如下:
- <?php
- if (isset($_GET['dir'])){ //设置文件目录
- $basedir=$_GET['dir'];
- }else{
- $basedir = '.';
- }
- $auto = 1;
- checkdir($basedir);
- function checkdir($basedir){
- if ($dh = opendir($basedir)) {
- while (($file = readdir($dh)) !== false) {
- if ($file != '.' && $file != '..'){
- if (!is_dir($basedir."/".$file)) {
- echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";
- }else{
- $dirname = $basedir."/".$file;
- checkdir($dirname);
- }
- }
- }
- closedir($dh);
- }
- }
- function checkBOM ($filename) {
- global $auto;
- $contents = file_get_contents($filename);
- $charset[1] = substr($contents, 0, 1);
- $charset[2] = substr($contents, 1, 1);
- $charset[3] = substr($contents, 2, 1);
- if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
- if ($auto == 1) {
- $rest = substr($contents, 3);
- rewrite ($filename, $rest);
- return ("<font color=red>BOM found, automatically removed._<a href=http://www.phpfensi.com>http://www.phpfensi.com/nokia/c6/</a></font>");
- } else {
- return ("<font color=red>BOM found.</font>");
- }
- }
- else return ("BOM Not Found.");
- }
- function rewrite ($filename, $data) {
- $filenum = fopen($filename, "w");
- flock($filenum, LOCK_EX);
- fwrite($filenum, $data);
- fclose($filenum);
- }
- ?>
这样我们只要运行就可以替换指定目录所所有文件的所有内容,这个还是特别方便的。
Tags: php批量 替换 内容
相关文章
- ·php mysql数据批量删除实现代码(2014-09-11)
- ·php 批量删除数据(2014-09-12)
- ·php批量添加数据与批量更新数据方法(2014-09-22)
- ·浅析php批量添加和更新数据的方法实现(2015-04-04)
- ·PHP怎么实现批量删除 实现批量删除的代码(2018-08-02)
- ·php批量替换html标签的实例代码(2020-07-06)
- ·使用php批量删除数据库下所有前缀为prefix_的表(2021-02-09)
- ·php实现批量压缩图片文件大小的脚本(2021-03-12)
- ·php批量添加数据与批量更新数据的实现方法(2021-05-03)
- ·php编写批量生成不重复的卡号密码代码(2021-05-26)
- ·php 批量查询搜狗sogou代码分享(2021-05-27)
- ·PHP批量去除BOM头代码分享(2021-06-04)
- ·php批量删除超链接的实现方法(2021-06-20)
- ·关于php处理textarea回车换行替换方法(js调用出错)(2013-11-29)
- ·PHP 批量替换相对地址为绝对地址实现代码(2014-01-03)
- ·php 只替换第一次出现的字符串(2014-01-07)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)