您的位置:首页 > 编程语言 > PHP开发

批量替换文本内容-PHP操作文件方法

2012-03-01 17:15 621 查看
//列出目录下文件

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 '++++++++++'. $file.'++++++++++<br />';

}

else echo '------非PHP文件------<br />';

$num++;

}

}

}

closedir($handle);

}

}

function myScanDir($path) {

$result = scandir($path);

foreach($result as $re) {

if($re == '.' || $re == '..') continue;

$dir = $path.'/'.$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 = '********************math********************';

}else{

$add = '-----------------------------------------------';

}

echo "Line #<b>{$line_num}</b>: ". htmlspecialchars($line). $add. '<br />';

}

$line = NUll;

$lines = NUll;

$line_num = NUll;

}

===========================

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

$fp = fopen($file, 'r');  //以读方式打开文件;$fp = fopen($file, 'r+');//以读写方式打开;$fp = fopen($file, 'a');//以写追加方式打开

// read some data

$data = fread($fp, 18);  

  //fgetc()读字符串 | fgets()读行 | fgetss()读行并去标签 | fread()读文件 | stream_get_line()读文件

var_dump($data);echo '-----------<br />';

// move back to the begining of the file

// same as rewind($fp);

fseek($fp, 10); //设置文件指针

$data = fread($fp, 9);

var_dump($data);echo '<br />';

fclose($fp);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: