2013-04-16 5 views
0

$snum 문자열이 포함 된 파일에서 행을 삭제하고 싶습니다. 나는 그것을 작동하게 만들었지 만, 줄 바꿈을 남겨 둡니다. 어떻게 제거 할 수 있습니까? 아래의 트림 기능을 시도했지만 작동하지 않습니다.PHP 파일과 줄 바꿈을 제거하는 방법은 무엇입니까?

<?php 

$snum=$_GET['snum']; 

$filePath = './SLBrecords.csv'; 

$fileArr = file($filePath); 

//$fileArr = file($filePath, FILE_SKIP_EMPTY_LINES); 

foreach($fileArr as $k=>$line) { 
    if (strpos($line,$snum) !== false) { 
     unset($fileArr[$k]); 
     trim(preg_replace('/\s\s+/', ' ', $fileArr[$k])); 
    } 
} 
$success = FALSE; 
if (file_put_contents($filePath, implode('', $fileArr), LOCK_EX)) 
{ 
    $success = TRUE; 
} 

header("Location: sfadhome.php"); 

?> 
+0

trim (preg_replace ('~ [\ r \ n] + ~', ', $ fileArr [$ k])); 이렇게 해봐. –

답변

1

개정 # 한편 5 내가 (- 또한 "\ n을"과 "\ r에 \ n을"문자열의 모든 종류) - 주요 테스트를 한 나는이 사람이 당신이 찾고있는 하나라고 생각 :

<?php 

$cont = file_get_contents($filePath); 

$quoted = preg_quote($snum); 

$replace = array(
    '/^[^\r\n]*'.$quoted.'[^\r\n]*($|\r?\n)/' => '', 
    '/\r?\n[^\r\n]*'.$quoted.'[^\r\n]*($|\r?\n)/' => '$1' 
); 

$cont = trim(preg_replace(array_keys($replace), array_values($replace), $cont)); 

file_put_contents($filePath, $cont); 

작동하지 않는다면 알려주세요. 해결할 것입니다.

관련 문제