>백엔드 개발 >PHP 튜토리얼 >PHP에서 단어 일치를 기반으로 텍스트 파일의 줄을 바꾸는 방법은 무엇입니까?

PHP에서 단어 일치를 기반으로 텍스트 파일의 줄을 바꾸는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-28 10:02:12229검색

How to Replace Lines in Text Files Based on Word Matching in PHP?

PHP를 사용하여 단어 일치를 기반으로 텍스트 파일의 줄 바꾸기

줄 번호를 알 수 없는 시나리오에서 단어를 기반으로 특정 줄 바꾸기 일치하는 것은 어려운 작업이 될 수 있습니다. 다행스럽게도 PHP는 이 상황을 해결하기 위한 몇 가지 효과적인 접근 방식을 제공합니다.

더 작은 파일의 경우(메모리에 적합):

  1. 전체 파일을 다음 배열로 읽어옵니다. file('myfile')을 사용하여 줄을 만듭니다.
  2. 다음과 같이 원하는 줄을 바꾸는 함수를 만듭니다. replacement_a_line($data):

    • stristr($data, 'certain word')를 사용하여 행에 대상 단어가 포함되어 있는지 확인합니다.
    • 발견된 경우 대체 행을 a로 반환합니다. 문자열입니다.
    • 그렇지 않으면 원본을 반환합니다. line.
  3. array_map('replace_a_line', $data)을 사용하여 배열의 각 줄에 대체 함수를 적용합니다.
  4. 수정된 배열을 다음을 사용하여 파일에 다시 씁니다. file_put_contents('myfile', $data).
  5. 다음을 사용하여 방법을 향상시킵니다. array_map을 단순화하는 람다 함수:

    • $data = array_map(function($data) { ... }, $data);

더 큰 파일의 경우(메모리 집중):

  1. fopen('myfile', 'r') 및 fopen('myfile.tmp', 'w')을 각각 사용하여 읽기 및 쓰기용 파일을 엽니다.
  2. 교체 여부를 나타내는 플래그를 설정합니다($replaced).
  3. 다음을 사용하여 입력 파일의 각 줄을 읽습니다. fgets($reading).
  4. stristr($line, 'certain word')를 사용하여 대상 단어가 있는지 확인합니다.
  5. 발견된 경우 해당 줄을 수정된 버전으로 바꿉니다.
  6. fputs($writing, $line)을 사용하여 업데이트된 줄을 출력 파일에 씁니다.
  7. 다음 후에 파일 핸들을 닫습니다.
  8. 교체가 이루어진 경우에만 원본 파일을 수정된 파일로 바꾸거나(이름 변경('myfile.tmp', 'myfile')), 대체가 필요하지 않은 경우 임시 파일을 삭제합니다(링크 해제(' myfile.tmp')).

위 내용은 PHP에서 단어 일치를 기반으로 텍스트 파일의 줄을 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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