2013-08-12 2 views
0

나는 file_get_contents으로 마스터 PHP 템플리트 (HTML 템플리트 역할을 함)를 호출하는 PHP 스크립트를 가지고 있으며, 그로부터 몇 단어를 대체 한 다음 최종 파일을 다른 PHP로 디렉토리에 저장합니다.PHP : include()로 PHP 파일 file_get_contents;

그러나 마스터 PHP 템플릿 자체에 include();require_once();이 있으며 단어를 바꾼 후 저장된 파일은 마스터 템플릿에서 호출 된 파일을로드하지 않습니다.

저장된 파일의 HTML 소스 코드는 <?php include('file_here'); ?>이지만 파일 _here의 출력에는 없습니다 (이미지 참조).

enter image description here

어떻게) (file_get_contents를 호출 할 수 있습니다; 여전히 마스터 템플릿이 include(); 또는 require_once(); ?

+0

가장 좋은 방법은 마스터 템플릿 파일을 포함시키는 것이다. 아마도 ob_start/ob_get_clean 블록에 넣고 그 결과를 대체해야한다. – Orangepill

답변

2

file_get_contents()은 파일 내용을 가져오고 PHP 스크립트로 실행하지 않습니다. 이 코드를 실행하려면이 코드를 포함하거나 처리해야합니다 (예 : Apache에 대한 HTTP 요청을 통해).

이 파일을 포함하면 PHP 코드로 처리되며 물론 HTML 태그를 인쇄 할 수 있습니다 (include*은 모든 종류의 파일을 사용할 수 있음).

내용을 인쇄하기 전에 작업해야한다면 ob_* 함수를 사용하여 PHP 출력 버퍼를 조작하십시오. 참조 : 그런데 http://www.php.net/manual/fr/ref.outcontrol.php

ob_start(); // Start output buffer capture. 
include("yourtemplate.php"); // Include your template. 
$output = ob_get_contents(); // This contains the output of yourtemplate.php 
// Manipulate $output... 
ob_end_clean(); // Clear the buffer. 
echo $output; // Print everything. 

을, 같은 메커니즘은 템플릿 엔진에 대한 무거운 소리가 난다. 기본적으로 템플릿에는 PHP 코드가 포함되어서는 안됩니다. 그런 행동을 원한다면 나뭇 가지를 보아라. http://twig.sensiolabs.org/

+0

위대한 작품! 감사! – Lee