2009-08-28 4 views
0

У меня есть 1 шаблон-файл, который входит в основной файл.Выполнение php из другого файла

some.template:

... 
<?php echo '!'; ?> 
... 

в главном файле я прочитал файл в 1 переменной и отобразить его. Конечно, php-скрипт там не работает. Как я могу это сделать, чего хочу?

Благодаря

+0

Какие изменения вам необходимы? Покажите им их, и может быть способ написать шаблон, который вам не нужно изменять и eval (что крайне небезопасно). –

ответ

4

Вы можете использовать include для чтения и обработки файла. Если вам нужна постобработка результат (я предполагаю, что может быть причиной для Вас, чтобы прочитать шаблон в переменный) пытается output buffering:

ob_start(); 
include 'some.template'; 
$out = ob_get_clean(); 
echo $out; 

Если вам необходимо изменить шаблон перед тем имея процесс PHP вам придется прибегнуть к eval. Но я бы посоветовал вам очень осторожно с этим по очевидным соображениям безопасности и, возможно, не столь очевидным причинам производительности. Если вам просто нужны переменные, которые нужно заменить, вы должны использовать вместо этого механизм шаблонов или просто означает, например, preg_replace.

0

Не читать файл в переменную, вместо того, чтобы сделать

include 'some.template'; 
+0

Мне нужно изменить шаблон перед вставкой. включить неправильный путь. – Ockonal

+1

Переписывание кода PHP в шаблоне? Вы действительно должны переосмыслить свой дизайн. Если бы вы могли дать более подробную информацию о том, что именно вы хотите достичь, кто-то может предложить лучшее решение. –

0

Поскольку вы хотите отредактировать сценарий, прежде чем использовать его, единственный способ сделать это practially является использование:

eval($string); 

Я уверен, что не нужно говорить, чтобы не делать это с пользовательский ввод, если вы цените безопасность вообще.

+0

Я уверен, что вам нужно сказать ему, что это небезопасно, слишком много людей - это бедные программисты, чтобы предположить, что это так. –

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