Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php 怎样批量修改文本内容?

php 怎样批量修改文本内容?

coldplay.xixi
coldplay.xixiasal
2020-06-11 10:50:012726semak imbas

php 怎样批量修改文本内容?

php 怎样批量修改文本内容?

php 批量修改文本内容的方法:

//列出目录下文件
function file_list($path){
    $num = 0;
    if($handle = opendir($path)){
        while(false !== $file=readdir($handle)){
            if($file !='.' && $file !='..'){
                if(is_dir($path. '/'. $file)){
                    file_list($path. '/'. $file);
                }else{
                    if(preg_match ("/.php$/", $file)){  //这里匹配是否PHP文件
                        file_content_replace($path.'/'.$file, 'PPCART_TEXT_SUCCESS', '***********'); //这里的替换方式;开始替换文本
                        echo &#39;++++++++++&#39;. $file.&#39;++++++++++<br />&#39;;
                    }
                    else echo &#39;------非PHP文件------<br />&#39;;
                    $num++;
                }
            }
        }
        closedir($handle);
    }
}
function myScanDir($path) {
    $result = scandir($path);
    foreach($result as $re) {
        if($re == &#39;.&#39; || $re == &#39;..&#39;) continue;
        $dir = $path.&#39;/&#39;.$re;
        if(is_dir($dir)) {
            showDir($dir);
            continue;
        }
        echo $dir."<br />";
    }
}
//比较替换参数依:文件名、被替换字符串、替换字符串;file_get_contents(),file_put_contents(),str_replace()配合使用
function file_content_replace($filename, $search, $replace){
    $string = file_get_contents($filename);
    $new_string = str_replace($search, $replace, $string);
    if($string !=$new_string) file_put_contents($filename, $new_string);
}

操作文件的函数有很多有用的:

file()把文件读入一个数组中,(便可以逐行显示文件内容)

//逐行显示文件内容
function show_line($file){
    $lines = file($file);
    foreach($lines as $line_num => $line){
        if(preg_match ("/PPCART_TEXT_SUCCESS/", $line)){
            $add = &#39;********************math********************&#39;;
        }else{
            $add = &#39;-----------------------------------------------&#39;;
        }
        echo "Line #<b>{$line_num}</b>: ". htmlspecialchars($line). $add. &#39;<br />&#39;;
    }
    $line = NUll;
    $lines = NUll;
    $line_num = NUll;
}

不把文件内在读出来放到另人变量里的,直接读取文件缓存中的内容

$fp = fopen($file, &#39;r&#39;);  //以读方式打开文件;$fp = fopen($file, &#39;r+&#39;);//以读写方式打开;$fp = fopen($file, &#39;a&#39;);//以写追加方式打开
// read some data
$data = fread($fp, 18);  
  //fgetc()读字符串 | fgets()读行 | fgetss()读行并去标签 | fread()读文件 | stream_get_line()读文件
var_dump($data);echo &#39;-----------<br />&#39;;
// move back to the begining of the file
// same as rewind($fp);
fseek($fp, 10);  //设置文件指针
$data = fread($fp, 9);
var_dump($data);echo &#39;<br />&#39;;
fclose($fp);

推荐教程:《PHP视频教程

Atas ialah kandungan terperinci php 怎样批量修改文本内容?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn