2013-08-11 6 views
2

Во-первых, а) Я надеюсь, что я не спрашиваю, глупый вопрос, и б) это не было уже покрыто ..PHP эхо не обрабатывает

Для проекта я пишу форму системы CMS (базовый) для веб-сайта клиента, но с помощью file_get_contents(), а затем echo'ing он возвращает raw html с php-тегами в нем.

Может ли кто-нибудь пролить свет на то, что я делаю неправильно, пожалуйста?

<?php 

require_once("system/functions.php"); 
require_once("registeredModules.php"); 
include "system/PageGenerator.php"; 

$includes = array("pagePreamble"=>"pageData/index_pagePreamble.inf", 
        "headContents"=>"pageData/index_headContents.inf", 
        "bodyPreamble"=>"pageData/index_bodyPreamble.inf", 
        "contents"=>"pageData/index_contents.inf"); 

$pageTitle = "Hook and Odiham Lions"; 

$html = file_get_contents($template); 

... other processing here.... 

print $html; 

?> 
+1

Что такое форма '$ template'? Это имя файла или URL-адрес? Если это имя файла, PHP просто получает файл с диска, не выполняя его сначала. Если вы хотите, чтобы PHP выполнял его, вам нужно использовать 'include', но будьте очень осторожны, это код, предоставленный пользователем! –

+0

Это имя файла ... $ template = "templates/hookodihamlions.template"; –

+1

'file_get_contents()' просто читает файл в виде строки. Он не выполняет этот файл как код PHP. Для этого вам нужно использовать 'include' или' eval() 'в зависимости от того, что вы хотите сделать (возможно, в сочетании с буферизацией вывода (см. [' Ob_start() '] (http://be1.php.net/ ob_start)), чтобы получить выход в PHP-переменную, а не непосредственно в brower). Но, * если * этот шаблон предоставляется пользователю, это плохая идея выполнить их! –

ответ

0

Вы можете попробовать следующий код для открытого вами файла шаблона:

function read_data_file($file) { 
      $file_open = fopen($file , 'r'); 
      $file_data = fread($file_open , filesize($file)); 
      fclose($file_open); 

      return $file_data; 
     } 

Использование:

$html = read_data_file($template); 
+0

Проблема в том, как я могу получить код html/php, который будет оцениваться после его возврата, пожалуйста? –

+0

Вы только что частично перезаписали ['file_get_contents()'] (http://be1.php.net/file_get_contents). :-) –

+0

Есть ли способ эхо/распечатать html/php в браузере, чтобы обрабатывать/анализировать php? –

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