2009-08-12 5 views
0

나는이 방법을 시도해 보려고 몇 가지 방법을 시도해 보았지만 운이 없었습니다! 솔루션 생각할 수 없다,hevaloc with eval code execution

<?php 
$jj = <<<END 
?> 
<h1>blah blah</h1> 
<p> blah blah blah blah blah blah blah <?php include("file.php"); ?> blah blah</p> 
<?php 
END; 
eval('?>'.$jj.'<?php '); 
?> 

이 어떤 일이든 어떤 출력을 발생하지 않습니다 :

는이 같은 페이지 (예)를 가지고있어!

답변

3

eval은 PHP 코드 (예 : <? php? > 태그로 둘러싸여 있지 않음) 만 예상하므로 eval() 호출이 구문 분석 오류로 인해 실패 할 수 있습니다.

나는 예를 들어, 대신 출력 버퍼링을 사용하는 것이 좋습니다 것입니다 :

<?php 
//start output buffering, anything outputted should be stored in a buffer rather than being sent to the browser 
ob_start(); 
?> 

<h1>blah blah</h1> 
<p> blah blah blah blah blah blah blah <?php include("file.php"); ?> blah blah</p> 

<?php 
//get contents of buffer and stop buffering 
$content = ob_get_clean(); 
echo $content; 
?> 
+0

내용은 그 일을 주위 어쨌든이 ... 문자열에 투입 할 필요가? –

+1

heredoc 안에 넣을 수는 있지만 파싱되지 않습니다. 그러나 그는 나중에 eval을 사용합니다 ... –

+0

@johnnnnnnnnnnnnnnny : $ content는 출력 버퍼에서 반환 된 평가 된 문자열을 포함합니다. –