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

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

 

1

저것은 A로 해야 한다.

2

이것은 A로 해야 한다

그것은 A로 해야 한다

4

고것은 A로 해야 한다..

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

 

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

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

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

좋은 방법이 있을까요?

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

 

답변 2개

채택된 답변
+20 포인트

Copy
$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);
}
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

삽질해보겠습니다. 정말 정말 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

Copy
<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>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고