2013-12-14 2 views
2

마지막 줄을 제외하고 txt 파일을 읽을 수 있습니까? 마지막 줄txt 파일을 읽지 만 마지막 줄을 표시하지 않습니다.

<!-- the input fields that will hold the variables we will use --> 
     <input type='hidden' id='current_page' /> 
    <input type='hidden' id='show_per_page' /> 


<div id='content'> 


    <?php 
$file = fopen("admin/events/events.txt", "r"); 
while(!feof($file)){ 
    $line = fgets($file); 
$line = str_replace("<div data-role='day' data-day='", "<b><u>Datum:</b></u> ", $line); 
$line = str_replace("'><div data-role='event' data-name='<h1>", " <br><b><u>Event:</b></u> ", $line); 
$line = str_replace("' data-start='", " <br><b><u>Start:</b></u> ", $line); 
$line = str_replace("' data-end='", " <br><b><u>Einde:</b></u> Tot ", $line); 
$line = str_replace("' data-location='", " <br><b><u>Locatie:</b></u> ", $line); 
$line = str_replace("</h1>", " <br><b><u>Inhoud event:</b></u><br> ", $line); 
$line = str_replace("'></div></div>", "", $line); 
echo "<div class='event'>$line</div>"; 
} 
fclose($file); 

?> 

</div> 
<br> 
<div id='page_navigation'></div> 

그래서이 페이지를 제공 "빈"페이지 공백 라인 및 페이징을 제공 1 2 3 4 페이지 (123)는 콘텐츠 충전되지만, 4 페이지가 비어 있기 때문에 마지막 행 txt 파일은 newline 생성을 위해 PHP_EOL로 txt fil에 쓰기 때문에 항상 newline입니다. 어떻게 마지막 줄을 제외하고 txt 파일의 모든 줄을 읽을 수 있습니까?

+0

비어 있지 않은 경우에도 마지막 줄을 건너 뛸 수 있습니다이 방법; 아니면 다른 빈 줄을 읽으려고하지만 마지막 줄은 읽지 않으시겠습니까? – v010dya

+0

안녕하세요, 아니 다른 비어있는 라인, 마지막 라인 만 ... 나는 그것을 시도해 줄 것입니다 :) 당신의 노력을위한 thx – Johan

+0

바트의 대답은 다른 사람들이 시도 (및 실패)를 방지하기 위해 허용해야한다고 생각합니다 –

답변

1

empty은 개행을 비어있는 것으로 간주하지 않으므로 작동하지 않을 수 있습니다. 첫째 trim :

$line = trim($line); 
if ($line != "") { 
    // process line 
} 

더 나은하지만, 정말 수정하고 파일을 읽을 괜찮은 HTML의 DOM 파서를 사용하는 것입니다. (HTML 것 같다.)

+0

thx bart, 매력처럼 일했다 :) – Johan

-1

비어있는 경우 그냥 생략하십시오. 다음 줄에서 $line = fgets($file);을 읽은 후 비어 있는지 확인한 다음 continue을 입력하십시오. 파일에 더 많은 콘텐츠가 있고 중간에 있다면 종료하고 싶지 않으므로 다음 줄로 계속 가고 싶기 때문에 계속 진행하고 싶습니다. 마지막 빈 줄이면 while 루프가 끝납니다.

while(!feof($file)){ 
     $line = fgets($file); 
     if(empty($line)) { 
     continue; 
     } else { 
     $line = str_replace("<div data-role='day' data-day='", "<b><u>Datum:</b></u> ", $line); 
     // ... end rest of your code 
     } 
    } 

동안 (무엇이 일어 났는지를 결정하기 위해 feof ($ 파일)!) { $ 라인 =는 fgets ($ 파일); $ line = str_replace ("Datum :", $ line); $ line = str_replace (" '>", "
이벤트 :", $ line); $ line = str_replace (" '데이터 시작 ='", "
시작 :", $ line); $ line = str_replace (" '데이터 끝 ='", "
Einde : Tot", $ line); $ line = str_replace (" '데이터 위치 ='", "
소재지 :", $ line); $ line = str_replace ("", "
인과 이벤트 :
", $ line); $ line = str_replace (" '>", "", $ line); echo "$ line"; } ...

+0

빠른 @ user555 유형 수정 : 당신이 -1 넣었 니? 그렇다면 다시 돌려주세요 :) – sobi3ch

+0

아니요, 아니요 :) – user555

+0

@ user555 어쨌든 내 오류를 지적 해 주셔서 감사합니다. – sobi3ch

1

당신이 확실히의 라인을 따라 뭔가 할 수있는 다른 빈 줄이 없음을 말했다 이후 :

// open file ... 
while(!feof($file)) 
{ 
    $line = fgets($file); 
    if(empty($line)) continue; 
    // ... 
} 

을 당신이 할 경우 당신에게 몇 가지 이상한 문제를 제공 할 수 있습니다 그곳에 숫자 '0'만있는 라인. Reference은 그래서 읽기 좀 더 열심히,하지만 더 정확

if ($line === "") 

을 위해 그것을 대체 할 수 있습니다.

다른 빈 줄이 있어야하지만 마지막 줄이 없으면 다음 줄에서 줄을 출력 할 수 있습니다. 따라서 다음을 수행하십시오.

// open file ... 
$next = fgets($file) 
while(!feof($file)) 
{ 
    $line=$next; 
    // ... 
    $next = fgets($file); 
} 
+0

word 'false'? 확실합니까? –

+0

내가 잘못했다, 미안. – v010dya

+0

''0.0 '' 문자열이'empty()'에 비어 있지 않습니다. – user555

0

파일 끝에 도달했는지 다시 확인하지 않는 이유는 무엇입니까?

while(!feof($file)){ 
$line = fgets($file); 

if (!feof($file)) 
{ 
//do what you need - it wasn't the last line 
} 

} 

당신이 (빈 ($ 라인)) 계속하면 당신이 할 수

관련 문제