이것은 텍스트 파일에 대해 특정 검색을 수행하고 지정된 텍스트를 특정 텍스트로 바꿀 수 있는 매우 유용한 프로그램입니다. 다음과 같이 하면 쉽게 할 수 있습니다.--teaman.oso.com.cn
클래스 파일 search_replace.inc
class search_replace{
var $find
var $replace; var $files ; > var $directories;
var $include_subdir;
var $ignore_lines;
var $ignore_sep; ;
->find = $find
$this-> ;replace = $replace;
$this->files;
$this->directories = $directories; $this->include_subdir = $include_subdir; ->ignore_lines = $ignore_lines;
$this->occurrences = 0
$this->search_function = '검색'; $this->last_error = ''; }
/***************************************
** 사건 검색을 위한 접근자입니다.
***************************************/
function get_num_occurences(){
$this->발생 횟수 반환
}
//대체 변수 설정
> 바꾸기){
$this-> ; }
// 디렉터리 변수 설정
함수 Set_directories ($ 디렉터리) {
$ This- & GT; 디렉터리 = $ 디렉터리; Set_include_subdir
함수 set_include_subdir($include_subdir){
|
//确定是哪一种搜索方式
function set_search_function($search_function){
스위치($search_function){
대소문자 '정상': $this->search_function = '검색';
TRUE를 반환합니다.
휴식;
case 'quick' : $this->search_function = 'quick_search';
TRUE를 반환합니다.
휴식;
case 'preg' : $this->search_function = 'preg_search';
TRUE를 반환합니다.
휴식;
대문자 'ereg' : $this->search_function = 'ereg_search';
TRUE를 반환합니다.
휴식;
기본값 : $this->last_error = '잘못된 검색 기능이 지정되었습니다.';
FALSE를 반환합니다.
휴식;
}
~ ; $file_array = 파일($filename); 만약 count($this->ignore_lines) > 0){
If(substr($file _array[$i],0,strlen ($this->ignore_lines[ $ j])) == $ This- & gt; IGNORE_LINES [$ J]) $ Continue_flag = 1
}
}
If ($ Continue_flag == 1 ) 계속;
$ OccureNces = count(explode($this->find, $file_array[$i])) - 1;
[$i])
//빠른(빠른) 검색 방법을 사용할 경우 igonre_lines 기능이 없습니다.
'r'), ); fclose($fp); 교체( $this->찾기, $this->replace, $file);
return $return; 파일 이름, 'r'), 파일 크기($filename))
$file = preg_replace( $this->find, $this->replace, $file)
if($occurences > 0) $return = array($occurences, $file); else $return = FALSE; return $return;
}
//ereg 검색 방법은ignore_lines를 지원하지 않습니다.
함수 ereg_search($filename){
$fp = fopen($filename, 'r'), 파일크기($파일이름 )); -1; 발생, $file ); else $return = FALSE;
> contents);
fclose($fp);
else{
this ->last_error = '파일을 열 수 없습니다: '.$filename; 검색하세요
, $this->files)
for($i=0; $i
if($this-> ;files[$ i ] == '.' 또는 $this->files[$i] == '..') 계속
$newfile = $this-& gt;$ser_func($this-> files[$i]); ){
$this->writeout ($this->files[$i], $newfile[1]);
}
//由do_search()사용, 排 Out所有要搜索的目录
기능 do_directories($ser_func){
if(!is_ array($this->디렉터리)) $this->디렉터리 = 폭발(',', $this->디렉터리);
for($i=0; $i
$dh = opendir($this->directories[$i]);
while($file = readdir($dh)){
if($file == '.' OR $file == '..') 계속;
if(is_dir($this->directories[$i].$file) == TRUE){
if($this->include_subdir == 1){
$this-> 디렉토리[] = $this->디렉토리[$i].$file.'/';
계속;
계속 ;
}
}
if(is_array($newfile) = TRUE){
$this- >writeout($this->directories[$i].$file, $newfile[1])
~ ~ > > ~ if ((is_array($this->files) AND count($this->files) > 0) OR $this-> 파일 != '') $this->do_files($ this->search_function); ;search_function);
// 클래스 종료
?>
//다음은 이 클래스를 호출하는 예시입니다. example.php
include('search_replace.inc' ); //파일 포함
//새 객체 생성, 검색 조건 설정, 최종 검색 결과 반환
$sr = new search_replace('asp', 'php', array('test. txt')); //검색 및 바꾸기
use ‐ ’ s sr->set-search-function('quick')- .
$sr->do_search(); 🎜>//다음은 사용자 정의된 반환 정보입니다
header('Content-Type: text/plain');
echo '다음 위치를 찾아서 교체합니다: '.$sr->get_num_occurences(). "rn";
echo '아, 다음과 같은 오류가 발생했습니다...........: '.$sr-> ;get_last_error()."rn"?> ;
//다음 텍스트를 test.txt로 저장합니다. text.txt는 읽고 쓸 수 있어야 합니다.
"저는 ASP를 매우 좋아합니다. 배우기 쉽고 강력합니다. ASP가 대부분의 시장에서는 ASP가 너무 좋습니다. "
이때 Exame.php를 열면 다음과 같은 내용이 나옵니다.
다음 위치를 찾아서 교체하세요. 3.
아, 오류가 뜹니다. 다음과 같이 발생했습니다...:
test.txt 파일을 확인해보니 확실히 asp가 나타나는 곳이 php로 바뀌었습니다.
위 내용은 파일이나 디렉터리를 검색하고 바꾸는 데 좋은 클래스를 소개합니다. 이는 매우 실용적이며 다양한 측면을 포함하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.