2012-04-17 5 views
0

줄의 전체 내용을 어떻게 잡아낼 수 있습니까? 나는 의심이있다 substr() 대답이 아니다.substr()을 EOL에?

Authors: Mr. Foo, Mr. Bar 
Date: Jan 1, 1970 
etc... 

$file_text 문자열에는 위와 비슷한 내용이 있습니다. 나는 이런 식으로 뭔가를 찾고 있어요 :

$author_line = substr($file_text, 0, EOL); 

답변

2

file()으로 파일 내용을 얻기 도움이된다면 자동으로 당신을 위해 라인에 그것을 잘라냅니다.

그렇지 않으면, 시도 strstr($file_text,PHP_EOL,true)

+0

좋은 점이 있으면 파일은 각 행을 반환 된 배열의 새 요소로 옮깁니다. – GordyD

+0

그게 완벽합니다. 고맙습니다. – nulluser

0

시도 :

$lines = explode(PHP_EOL, $line_text); 

그런 다음 각 라인을 통해 루프 :

foreach($lines as $line) 
{ 
    //do something 
} 
+0

인수를 역순으로 사용하고 있습니다. – MetalFrog

+0

@MetalFrog - Merci – GordyD

+0

'\ n'을 큰 따옴표로 묶어야합니다. 그렇지 않으면 새 줄로 취급되지 않습니다. – DaveRandom

0

이 첫 번째 줄을 가져가 (당신의 선택과 끝 (end-of-line) 구분 기호를 교체) :

$author_line = strtok($file_text, "\n"); 

대안 : 줄의 끝을 포함하지 않는 첫 번째 줄에있는 모든 사로 잡고

list($author_line) = explode("\n", $file_text, 1); 
0
$author_line = substr($file_text, 0, strpos("\n")); 

. Windows에서는 \ n \ Unix에서 \ n \ n을 고려해야합니다.

$author_line = substr($file_text, 0, strpos(PHP_EOL)); 
+0

그게'PHP_EOL'에 대한 무엇입니까 :) – Dunhamzzz

+0

고마워 .. 내가 처음에 그것을 사용해야합니다. – Stu

2

잡아이 각 행 :

$eachLine = explode(PHP_EOL, $file_text); 

그런 다음 일반 문자열 그냥 모든 것을 사로 잡고

더 제대로으로 코딩. 이 모든 예에서와 같이 콜론으로 구분 있다면, 당신은 다음 키를 추출하기 위해 폭발 할 수 => 이것은 모두를위한 당신에게 키 => 값의 배열을 줄 것이다

// Grab each Line 
$eachLine = explode(PHP_EOL, $file_text); 
$data= array(); 

foreach($eachLine as $line) { 

    $line = explode($line, ':'); 

    $data[trim($line[0])] = trim($line[1]); 

} 

당신의 문자열에있는 모든 데이터의 값 배열 $data의 데이터입니다.

+0

당신은 내가가는 곳에서 내 마음을 읽었습니다 !! 내가 실제로 묻는 질문에 대답했기 때문에 나는 다른 대답을 옳은 것으로 받아 들였다. – nulluser

-1
$author_line = explode("\n", $file_text); 
관련 문제