채택완료

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

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

1

저것은 A로 해야 한다.

2

이것은 A로 해야 한다

3 

그것은 A로 해야 한다

4

고것은 A로 해야 한다..

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

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

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

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

좋은 방법이 있을까요?

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

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
2022-08-10 (수) 17:50:08
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개

삽질해보겠습니다. 정말 정말 감사합니다.
2022-08-10 (수) 23:09:28
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개

답변 감사합니다.

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