2015-06-20 3 views
0

Я пытался использовать file_get_contents, чтобы загрузить файл PHTML и хранить в переменной, но это, кажется, что PHP блоки игнорируютсяPHP блок игнорируется при использовании file_get_contents PHP

<?php include_once '../php_inc/core.inc.php'; ?> 
<div class="dialog-header"> 
    <div class="dialog-header-inner"> 
     <div class="inline-blk left-align dialog-header-left-item"><div class="bar-title vertical-center">Guitar</div></div> 
     <div class="inline-blk right-align dialog-header-right-item pointer"> 
     <div class="bar-title dialog-header-bar-option inline-blk"><div class="vertical-center" >Post</div></div> 
     <div class="bar-title dialog-header-bar-option inline-blk"><div class="vertical-center" ><img src="<?php echo IMGDIR ?>menu_navi_icon.png" width="20" height="13"></div></div> 
     </div> 
    </div> 
</div> 

Когда я сделать что-то вроде echo file_get_contents(myfile.phtml), когда я проверить элемент в хроме, он автоматически комментировать мой PHP блок

<!--?php include_once '../php_inc/core.inc.php'; ?--> 
<div class="dialog-header"> 
    <div class="dialog-header-inner"> 
     <div class="inline-blk left-align dialog-header-left-item"><div class="bar-title vertical-center">Guitar</div></div> 
     <div class="inline-blk right-align dialog-header-right-item pointer"> 
     <div class="bar-title dialog-header-bar-option inline-blk"><div class="vertical-center">Post</div></div> 
     <div class="bar-title dialog-header-bar-option inline-blk"><div class="vertical-center"><img src="<?php echo IMGDIR ?>menu_navi_icon.png" width="20" height="13"></div></div> 
     </div> 
    </div> 
</div> 

и постоянная IMGDIR не получили отражение в well.I знает, что нужно использовать либо GET ИЛИ POST для передачи пользовательских данных. Тем не менее, мне просто нужно создать базовую настройку в core.inc.php, как некоторые постоянные переменные и т. Д.

+0

Я не уверен, что ваш PHP код прокомментирован ... но я думаю, что ваш файл не является '.php' файл, поэтому PHP-код не выполняется. – Umair

+0

Я не думаю, что это было бы причиной. Обычно я использую расширение 'phtml' для того, чтобы файл содержал больше html-кодов, а несколько строк php-коды, но кажется, что 'file_get_contents' обрабатывают его по-другому –

ответ

1

Функция file_get_contents() считывает содержимое файла в переменную. Он не интерпретировать содержимое файла в любом случае.

Вы должны указать include файл, если он содержит код PHP, и вы хотите, чтобы этот PHP-код был интерпретирован.

Другой вариант, если вы хотите, чтобы прочитать файл, выполнить PHP-коде это содержимое, но не отправить содержимое он генерирует HTML (код за пределами PHP блоков, echo(), print() и т.д.) непосредственно к выходу, но сохранить использовать его позже (или несколько раз), является использование output buffering:

// Start output buffering; it redirects any generated content to a memory buffer 
ob_start(); 
// Include the desired file; this executes the PHP code it contains 
// but because of the output buffering, the HTML code is not displayed 
// here but buffered 
include 'myfile.phtml'; 
// Get the content of the buffer, clear the buffer, end the buffering 
$text = ob_get_clean(); 
// 
// ... more code and/or HTML follows 
// 
// When you need the content of 'myfile.phtml' you just: 
echo($text); 
// 
// ... more code and/or HTML follows 
// 
// If you need to display the content of 'myfile.phtml' again you just: 
echo($mytext); 
+0

, что является блестящим! –

Смежные вопросы