365bet体育在线官网php批量替换内容或钦点目录下

strtr() 函数调换字符串中一定的字符。

utf-8编码总bom在文书尾部.占用三个字符.相当多都能鉴定区别不过php不可能识别bom头
那也是用记事本编辑utf-8编码后施行就能够出错的缘由了(作者用xftp直接改换导致错误
在服务器根目录下建二个clean.bom文件.浏览器运转一下就足以了.

语法
strtr(string,from,to)或者

诚如相会世json.parse报错.错误音讯.

strtr(string,array)

<?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") . "
";
} 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.</font>");
} else {
return ("<font color='red'>BOM found.</font>");
}
} else
return ("BOM Not Found.");
}

$addr=strtr($addr,"","aao");        //第一种调用方法
$trans=array("hello"=>"hi","hi"=>"hello");      //定义一个转移数组
echo strtr("hi all, i said hello",$trans);       //第三种调用方法

function rewrite($filename, $data)
{
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>

//普通字符串

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=;");    
        } 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);    
}    
?>  

如此那般大家假设运转就能够轮换钦赐目录所享有文件的兼具内容,这些依旧极其有利的。

本文由365bet体育在线官网发布于关于计算机,转载请注明出处:365bet体育在线官网php批量替换内容或钦点目录下

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。