특정 줄에 있는 특정 글자 치환이 가능할까요?

특정 줄에 있는 특정 글자 치환이 가능할까요?

QA

특정 줄에 있는 특정 글자 치환이 가능할까요?

본문

어떤 파일의 내용이 아래와 같을 때

 

1

저것은 A로 해야 한다.

2

이것은 A로 해야 한다

그것은 A로 해야 한다

4

고것은 A로 해야 한다..

-----------------------------------------------

 

file 함수, input_file_contents 함수로 며칠째 삽질중인데

예를들어 3밑에 있는 A를 B로 치환하고자 할 때

(문제는 파일마다 저 번호와 줄수가 제각각 입니다.)

좋은 방법이 있을까요?

특정줄에 어떤 글자를 넣는건 가능한데 치환은 또 다른문제네요..

 

이 질문에 댓글 쓰기 :

답변 2


$file_path = 'tmp.txt';
$line_curr = 0;
$line_replace = 0;
if ($handle = fopen($file_path, 'r+')) {
  while (!feof($handle)) {
    $line_curr++;
      
    $read_line = fgets($handle);
    
    if ($read_line == '3') {
        $line_replace = $line_curr + 1;
    }
    
    if ($line_replace == $line_curr && strpos($read_line, 'A') !== false) {
            $read_line = str_replace("A", "B", $read_line);
    }
    
    fputs($handle, $read_line);
  }
  fclose($handle);
}

<div id=my>
1<br>
저것은 A로 해야 한다.<br>
2<br>
이것은 A로 해야 한다<br>
3 <br>
그것은 A로 해야 한다<br>
4<br>
고것은 A로 해야 한다..
</div>
<script>
my.innerHTML = my.innerHTML.split("3")[0] + "3" + my.innerHTML.split("3")[1].replace("A", "B");
</script>
답변을 작성하시기 전에 로그인 해주세요.
전체 15,432
QA 내용 검색
filter #php ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT