채택완료

@fopen 도움 부탁드립니다.

2016-03-16 (수) 20:36:06 4,254

Copy
<?php// 테스트 파일 생성$file = '../adm/test.php';$f = @fopen($file, 'a');fwrite($f, "<?php\n");fwrite($f, "첫번째라인\n");fwrite($f, "두번째라인\n");fwrite($f, "세번째라인\n");fwrite($f, "네번째라인\n");fwrite($f, "?>");fclose($f);?>


위소스대로 작업하면 아래처럼 파일생성돼요.


Copy
<?php첫번째라인두번째라인세번째라인네번째라인?>

저는 저렇게 파일 생성된상태에서  "네번째라인" 텍스트 다음줄에 "추가된라인" 이라고 추가하고싶은데

어덯게 작업해야되는지 도움 부탁드립니다.

"fseek" 사용해봤는데 사용방식이 틀렸는지는 모르겟는데 늘 ?> 다음에 내용이 추가되네요. 

|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트
$file = '../adm/test.php';
$DBf = file($file);
$rtn_value = '';
if($DBf) {
  $max = count($DBf) - 2;
  for($i = 0; $i < $max;$i++) {
$rtn_value .= $DBf[$i];
  }
}
$rtn_value .= "추가된라인\n?>";
$fp = fopen($file,"a");if (flock($fp, LOCK_EX)) {fwrite( $fp, $rtn_value );flock($fp, LOCK_UN);}fclose($fp);

대략 이런식으로 하시면 될것 같습니다.

테스트 해보지 않아서 약간의 오류가 있을수 있겠습니다.

여러가지 방법이있을수 있습니다. 

a는 쓰기전용입니다 .a+ 읽고 쓰기가 가능합니다. 

추가될때 파일을 읽어서 ?> 을 지우고 넣으시면 되겠네요

답변에 대한 댓글 1개

혹시 추가될때 파일을 읽어서 ?> 지우라고 했는데 어덯게 ?> 를 지우는지?

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