2013-08-08 3 views
1

I가 다음 스크립트 내에서 다음과 같은 문제PHP 코드는 주석 처리됩니다

PHP 코드 :

$var = file_get_contents('template/default/index.php'); 
$content1 = str_replace('{php}','<?php',$var); 
$content2 = str_replace('{/php}','?>',$content1); 
echo $content2; 

템플릿/기본/index.php에 코드 : 난

<!DOCTYPE html> 
<html> 
    <body> 
     <h1>My First Heading</h1> 
     <p>My first paragraph.</p> 
     {php} echo 'worked'; {/php} 
    </body> 
</html> 

template/default/index.php 내의 {php} {/ php} 태그를 프로퍼티 php 태그로 변환하려고합니다. 이것은 실제로 발생하지만 PHP 코드는 주석 처리됩니다. 브라우저는이 대가로 이것을 제공합니다 :

<h1>My First Heading</h1> 
<p>My first paragraph.</p> 
<!--?php echo 'worked'; ?--> 

아무도 이것을 해결하는 방법을 알고 있습니까?

+0

당신은 wordpress를 사용하고 있습니까? 모든 프레임 워크? –

+0

** template/default/index.php ** 콘텐츠를 확인하십시오. 의견이 있어야합니다. –

+1

PHP를 실행하면 실행되지 않을 것입니다. PHP 코드를 브라우저에 보내면 브라우저에 표시됩니다. Apache 또는 PHP 엔진이 PHP 코드를 에코 할 때 PHP 코드를 주석 처리했다고 추측 할 수 있습니다. 파일을 포함 시키거나 eval 함수를 사용해야합니다. –

답변

7

대체 된 내용을 반향하는 대신 eval '이어야합니다. 나는 그것을 권장하지는 않지만.

+0

어떻게 그럴 수 있습니까? 수, 평가와 함께 그것을 알아낼 수 없습니다. 도와 줘서 고맙다! – Jaspert

+1

http://php.net/eval – DanFromGermany

+2

또는 include를 사용하고 php 출력 버퍼를 통해 캡쳐하십시오 :'ob_start(); include ($ file); $ 콘텐츠 = ob_end_clean();' – DanFromGermany

2

아무 것도 없습니다.

은 그냥 index.php 파일 대신 {php}{/php}<?php?>을 사용하고 당신의 스크립트 파일을 포함한다.

+0

그는 그가 템플릿 파일처럼 멋지게 템플릿 엔진과 비슷한 평가를하려고한다고 생각합니다 – Kieran

+0

나는 그것을 좋아하지 않습니다 ... @Kieran – Neal