특정 줄에 있는 특정 글자 치환이 가능할까요?
본문
어떤 파일의 내용이 아래와 같을 때
1
저것은 A로 해야 한다.
2
이것은 A로 해야 한다
3
그것은 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>
답변을 작성하시기 전에 로그인 해주세요.