2012-12-10 3 views
0

오늘 file_get_contents() 함수에 문제가 있습니다. 대용량 파일을 읽을 때, 개행 문자 및 탭 문자는 종종 제거됩니다. 다음은 이것을 사용하는 방법에 대한 축소 된 예입니다.file_get_contents() 탭 및 줄 바꿈 문자를 제거합니다.

나는이 문제가 발생한 유일한 사람이 아니길 바래! : O

감사합니다!

<?php  
$file_name = "template.html"; 

$data = array('title' => 'Hello, World!', 
       'content'=> 'Hey stackoverflow!'); 

$file_contents = file_get_contents($file_name); 

foreach($data as $comment_name => $replacement_value){ 
    $search = "<!-- ".strtoupper($comment_name)." -->"; 

    $file_contents = str_replace($search, $replacement_value, $file_contents); 
} 

echo $file_contents; 

?> 
+2

웹 브라우저에서 "소스보기"를 수행하면 새 줄 탭이 여전히 있음을 알게되고 웹 브라우저에서 HTML –

+0

의 공백을 처리하는 방법을 읽을 수 있습니다. 새 줄과 탭이 없습니다. 그래서 나는 이것에 관해 게시했다 –

+0

나는 당신에게 누구나를 보여주기 위해 그림을 업로딩 할 것이다. –

답변

-1

내가 가진 문제는 무엇이 반환 될지에 대한 이해입니다. \ r, \ n 또는 \ t 문자 (브라우저가 각각 캐리지 리턴이나 탭으로 렌더링 함)를 포함하지 않는 HTML 문자열이 표시됩니다. 변수를 덤프하고 그 데이터를 살펴 보겠습니다. 그런 다음 데이터를 구문 분석하여 다시 만들도록 도와 줄 수 있습니다.

+1

file_get_contents는 파일을있는 그대로 읽습니다. \ r, \ n, \ t 또는 그 밖의 것을 대체하지는 않습니다. 보기 원본 모드에서 모든 서식을 볼 수 있습니다 (해당 서식이있는 경우). – ernie

+0

@ernie 당신은 정말로 정확합니다. 나는 그것을 시험해 보았고 탭을 Sublime과 Notepad에 둘 것입니다. 그 사람이 왜 그 때 제거되고 있는지 확실하지 않습니다. 아마 그의 파일 인코딩과 함께 뭔가 있을까? – gregwhitworth

+0

어쩌면 ... 나는 GNU nano를 사용하고 있기 때문에 의심 스럽다. 나는 새로운 파일을 만들고 ('touch default.html') 인코딩 파일인지 확인한다. –

관련 문제