백엔드 개발 PHP 튜토리얼 파일이나 디렉토리를 검색하고 바꾸는 데 좋은 클래스입니다. 매우 유용합니다.

파일이나 디렉토리를 검색하고 바꾸는 데 좋은 클래스입니다. 매우 유용합니다.

Jul 29, 2016 am 08:34 AM
function gt nbsp search this

이것은 텍스트 파일에 대해 특정 검색을 수행하고 지정된 텍스트를 특정 텍스트로 바꿀 수 있는 매우 유용한 프로그램입니다. 다음과 같이 하면 쉽게 할 수 있습니다.--teaman.oso.com.cn
클래스 파일 search_replace.inc
<?php
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<count($this->file) s); $i ){
if($this-&gt ;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<count($this->directories); $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
<?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-&gt ;get_last_error()."rn"?&gt ;
//다음 텍스트를 test.txt로 저장합니다. text.txt는 읽고 쓸 수 있어야 합니다.
"저는 ASP를 매우 좋아합니다. 배우기 쉽고 강력합니다. ASP가 대부분의 시장에서는 ASP가 너무 좋습니다. "
이때 Exame.php를 열면 다음과 같은 내용이 나옵니다.
다음 위치를 찾아서 교체하세요. 3.
아, 오류가 뜹니다. 다음과 같이 발생했습니다...:   
test.txt 파일을 확인해보니 확실히 asp가 나타나는 곳이 php로 바뀌었습니다.

위 내용은 파일이나 디렉터리를 검색하고 바꾸는 데 좋은 클래스를 소개합니다. 이는 매우 실용적이며 다양한 측면을 포함하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

해결 방법: 조직에서 PIN 변경을 요구합니다. 해결 방법: 조직에서 PIN 변경을 요구합니다. Oct 04, 2023 pm 05:45 PM

해결 방법: 조직에서 PIN 변경을 요구합니다.

Windows 11에서 창 테두리 설정을 조정하는 방법: 색상 및 크기 변경 Windows 11에서 창 테두리 설정을 조정하는 방법: 색상 및 크기 변경 Sep 22, 2023 am 11:37 AM

Windows 11에서 창 테두리 설정을 조정하는 방법: 색상 및 크기 변경

Windows 11에서 제목 표시줄 색상을 변경하는 방법은 무엇입니까? Windows 11에서 제목 표시줄 색상을 변경하는 방법은 무엇입니까? Sep 14, 2023 pm 03:33 PM

Windows 11에서 제목 표시줄 색상을 변경하는 방법은 무엇입니까?

Windows 11에서 작업 표시줄 축소판 미리 보기를 활성화 또는 비활성화하는 방법 Windows 11에서 작업 표시줄 축소판 미리 보기를 활성화 또는 비활성화하는 방법 Sep 15, 2023 pm 03:57 PM

Windows 11에서 작업 표시줄 축소판 미리 보기를 활성화 또는 비활성화하는 방법

Windows 11/10 복구의 OOBELANGUAGE 오류 문제 Windows 11/10 복구의 OOBELANGUAGE 오류 문제 Jul 16, 2023 pm 03:29 PM

Windows 11/10 복구의 OOBELANGUAGE 오류 문제

화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? 화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? Dec 29, 2023 pm 02:27 PM

화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까?

Windows 11의 디스플레이 크기 조정 가이드 Windows 11의 디스플레이 크기 조정 가이드 Sep 19, 2023 pm 06:45 PM

Windows 11의 디스플레이 크기 조정 가이드

Windows 11에서 밝기를 조정하는 10가지 방법 Windows 11에서 밝기를 조정하는 10가지 방법 Dec 18, 2023 pm 02:21 PM

Windows 11에서 밝기를 조정하는 10가지 방법

See all articles