테스트 사이트 - 개발 중인 베타 버전입니다

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

CtrlV 3년 전 조회 2,659

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

 

1

저것은 A로 해야 한다.

2

이것은 A로 해야 한다

그것은 A로 해야 한다

4

고것은 A로 해야 한다..

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

 

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

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

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

좋은 방법이 있을까요?

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

 

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

답변 2개

채택된 답변
+20 포인트
3년 전

</p>

<p>$file_path = 'tmp.txt';</p>

<p>$line_curr = 0;

$line_replace = 0;</p>

<p>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);

}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

C
CtrlV
3년 전
삽질해보겠습니다. 정말 정말 감사합니다.

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

</p>

<p><div id=my>

1


저것은 A로 해야 한다.


2


이것은 A로 해야 한다


3 


그것은 A로 해야 한다


4


고것은 A로 해야 한다..

</div></p>

<p><script>

my.innerHTML = my.innerHTML.split("3")[0] + "3" + my.innerHTML.split("3")[1].replace("A", "B");

</script></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

C
CtrlV
3년 전
답변 감사합니다.

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

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

로그인