php批量替换内容或指定目录下所有文件内容

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);

 

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.111cn.net>http://www.111cn.net/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);    
}    
?>  

这样我们只要运行就可以替换指定目录所所有文件的所有内容,这个还是特别方便的。

时间: 2024-09-26 01:13:05

php批量替换内容或指定目录下所有文件内容的相关文章

php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码_php技巧

web 开发中我们可能会碰到需要将某个目录下的所有文件清空,但不删除这个目录下的子目录(当然也不会删除被删除的根目录)的情况.那么对于这种只删除文件而不删除目录的方法,你是如何处理的呢?下面博主将要和你分享一下对于这个问题的一种比较好的解决办法.看下面这个函数: /*删除指定目录下的文件,不删除目录文件夹*/ function delFile($dirName){ if(file_exists($dirName) && $handle=opendir($dirName)){ while(f

PHP遍历并打印指定目录下所有文件实例

 这篇文章主要介绍了PHP遍历并打印指定目录下所有文件实例,需要的朋友可以参考下  代码如下: <?php //功能:遍历并打印指定目录下所有文件   function scan_dir($dir_name,$dir_flag=1) {  static $FILE_COUNT=1;                //记录文件数目 初值为1 目录名称不记  $FILE_COUNT--;                       //每调用一次scan_dir()函数自减1  @$dir_hand

filepath-Pathon 删除指定目录下的文件, 我是coding online,无法调试,代码报错,具体如下:

问题描述 Pathon 删除指定目录下的文件, 我是coding online,无法调试,代码报错,具体如下: #Delete all files under the pointed path import os filePath = raw_input("Input path where you want delete:n") #If file path is null, we should initial the variable "/home" if file

删除指定目录下的文件及空文件夹

原文:删除指定目录下的文件及空文件夹 echo offecho 正在执行数据库备份清理及转储,执行完毕自动退出,请勿强制关机!!!rem 删除I:\BatTest\test目录下的文件及空文件夹set a=I:\BatTest\test forfiles /s /p %a% /m *.* /d -90 /c "cmd /c  echo @file | del @file" echo %a% for /f "tokens=*" %%a in ('dir /b /ad

Python删除指定目录下过期文件的2个脚本分享_python

脚本1: 这两天用python写了一个删除指定目录下过期时间的脚本.也可能是我初学python,对python还不够熟习,总觉得这个脚本用shell写应该更简单也更容易些.就功能上来说,该脚本已经实现了我想要的效果,不过该脚本还不够通用性,还有更多可以完善的地方.目前该脚本在python2.4下运行良好.同时,我在脚本中加入了对python版本的判断,理论上2.7下也应该可以正常使用.有环境的朋友可以帮忙测试一下.该脚本不完善的地方在于,只能支持一级目录下的文件删除,还不支持目录递归.同时过期文

php查询指定目录下所有文件并保存到数组

 代码如下 复制代码 $dirs    = array(); foreach(glob("test/*") as $d) {     if(is_dir($d))     {         $dirs[]    = $d;     } } print_r($dirs); //方法二  代码如下 复制代码 glob("test/*", glob_onlydir) ; //查找目录下所有文件  代码如下 复制代码 function listdir($dir){ if(

三种php删除指定目录下所有文件与目录

 代码如下 复制代码 function DeltreeDir($dir)  { $dir = realpath($dir);         if (!$dir || !@is_dir($dir))                 return 0;         $handle = @opendir($dir);         if ($dir[strlen($dir) - 1] != DIRECTORY_SEPARATOR)                 $dir .= DIRECTO

删除指定目录下的文件与文件夹

//方法一 function   deltree($dirList){     chdir($dirList);     $handle=opendir('.');     while   (($file=readdir($handle))<>"")   {     if(is_file($file))     unlink($file);     if(is_dir($file)   &&   $file<>"."   &a

vs.net 2005(vb) + PPC 得到指定目录下所有文件列表的方法 DIR好像不能用

问题描述 在vb.net2003中,开发PC的程序,我可以用DIR得到某一个目录下所有的文件,但是vs.net2005(vb)+PPC中,DIR不能用,这样的话,我该怎么做呢? 解决方案 解决方案二:路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主