Как использовать eval?

Dima_2008

Новичок
Как использовать eval?

Привет всем!

Начал изучать php, посоветовали начать с собственной CMS.

Я создал класс для генерации страницы, передаю в класс параметры $title, $header, $content и подобное... и в итоге получаю сгенерированную html страницу.

Но теперь хочу усложнить систему, добавив в $content логику. Однако здесь возникли проблемы..., я посмотрел поиск по форуму, и вроде как она решается с помощью eval().
Пример из руководства php у меня работает:

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

но у меня код сложнее, есть if`ы, и предполагается, что может быть все любой код.

Пожалуйста, подскажите, как с помощью eval, выполнить более сложный код. И возможно ли это?
 

Фанат

oncle terrible
Команда форума
посоветовали начать с собственной CMS.
неправильно посоветовали.
начинать надо с гостевой.

Я создал класс для генерации страницы
абсолютно бессмысленный класс
я посмотрел поиск по форуму, и вроде как она решается с помощью eval().
ты ошибаешься.
 

svetasmirnova

маленький монстрик
>я посмотрел поиск по форуму, и вроде как она решается с помощью eval().
Плохо ты смотрел в поиске по форуму. Иначе бы ты нашёл сотню примеров бОльших проблем с eval. Тем более, что тебе надо
>выполнить более сложный код.
А можно всё ;)
 

Dima_2008

Новичок
Вот я как раз хочу вставить уже готовую гостевую в качестве страницы CMS.

Фанат, а как было бы более правильно?


svetasmirnova, а можно ссылку на примерчик :)?
 

svetasmirnova

маленький монстрик
Dima_2008
Какой примерчик?
Решения твоей задачи? Пихай в eval любой код и режь себе йайца.
Проблем? Пиши код из пяти строк, делай в нём описку и eval-ом его. Потом представь как будешь искать ошибку в коде из 20-ти строк.
 

Dima_2008

Новичок
А не пихается.

$content = '<? include("form.php"); ?>';
eval ("\$content = \"$content\";");
echo $content;

говорит

Parse error: parse error, unexpected T_STRING in c:\www\htdocs\create_page.class(49) : eval()'d code on line 1
 

diamond_krnl

pure-php
этот пример eval-"шаблонизатра" видимо взят из netcat-е, что не является лучшей релизацией.

посмотрите лучше в строну - pure php, например:
PHP:
<table>
<?foreach($rows as $r){?>
<tr><td><?=$r?></td></tr>
<?}?>
</table>
 

hohoho

Новичок
Я лично начинал с препарирования такой системы как smallnuke вот посмотри как там всё делается.
 

Dreammaker

***=Ф=***
hohoho,
и пусть сразу приучается ко всем ошибкам и недочётам свойственным нюко-подобным системам :)
 

Dima_2008

Новичок
Эй, братва, валите в офтопик из моей темы, нефига тут флудить.

diamond_krnl, т.е. это нужно будет к моей CMS подключать для парсинга вот таких вот подключаемых модулей?

-~{}~ 06.12.05 17:51:

блин, во геморой то.
 
Сверху