파일에서 2~5째 줄만 삭제하려면?

파일에서 2~5째 줄만 삭제하려면?

QA

파일에서 2~5째 줄만 삭제하려면?

본문

php언어를 이용해서  

 

한 php 파일에서  

2~5째 줄만 삭제하려면 어케해야 하죠?

 

문제는 이러한 파일이 여러개이라서

단순히 수작업으로는 곤란해서 입니다.

 

감사합니다. 

이 질문에 댓글 쓰기 :

답변 3

쉘이 편하긴 하죠..ㅎㅎ

 


<?php
   $filename = "test.txt";
 
   $fp  = fopen($filename, "r") or die("파일열기에 실패하였습니다"); 
   $line = 0;
   
   while(!feof($fp)){
     
   $content = fgets($fp);
   if($line < 2 ||  $line > 4)
   {
   
   
    $buffer .=  $content;
    
    //echo $line.":" .$content."<br>";
       
   }
   $line = $line+1;
   }
 
 
   fclose($fp);  
   $fp  = fopen($filename, "w") or die("파일열기에 실패하였습니다");   
   
   //echo $buffer;
   fwrite($fp, $buffer);  
   fclose($fp);   
?>
 

감사합니다.

간결하고 명료하게 답변 주셨네요 ^^


쉘이 편하긴 한데... recursive 작업을 해야 하는데 쉘은 recursive하게 제가 못짜요..

php로는  recursive작업소스를 로 따로 제작해놔서 그것을 쓰려하거든요


귀중한 시간 내어주셔서

다시 한번 감사드립니다.







































































































































































































































































































































.





































































































































































































































































.

현재 디렉토리(.)밑으로(하위에 있는 모든 서브디렉토리 포함) type이 file인것중,

파일명이 .php로 끝나는 모든 파일을 찾아서 다음 명령을 exec(실행)해라.

sed -i '2,5d' {} \; -> 그 찾은 파일들을 2번째줄부터 5번째줄까지 지워라(delete)

 


$output = `find . -type f -name '*.php' -exec sed -i '2,5d' {} \;`;
echo "<pre>$output</pre>";

 

 

Is it OK?

답변 감사합니다
근데 혹시 순수한 php로만 가능할까요?

그리고. 그 조건에서.원래의 파일에서 특정 줄만 없애는 것이기 때문에... 웹브라우저 출력이 아닌
원래 파일로 그대로 쓰는 과정이 필요할거 같아요 ^^

그리고 알려주신 대로 하면
해당 줄이 안지워지네요^^;

$lines = file("파일명.txt"); 하면 행별로 배열순서로 값이 들어가는데 이렇게 처리하면 안되나요?

 

foreach ($lines as $line_num => $line) {
    echo 
"Line #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br />\n"
;
}


2~5 라인은 제외하고 다시 파일로 써주면,,,

 

답변을 작성하시기 전에 로그인 해주세요.
전체 2,701
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT