- 1
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+163
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
> Итак нередко возникает необходимость вставки на свой сайт PHP скрипт стороннего производителя. Однако по умолчанию данная возможность отключена в скрипте. Поэтому предлагаем вам небольшой хак, позволяющий использовать любой PHP код в шаблонах
>
> Откройте файл index.php найдите строчку:
> echo $tpl->result['main'];
>
> и замените ее на
> eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
>
> Все, вы можете использовать сторонние скрипты на вашем сайте. Данных хак не рекомендуется к использованию на версиях ниже 3.0
"... небольшой хак ..."
Ага, небольшой. Нету просто слов... DLE.
"Данных хак не рекомендуется к использованию на версиях ниже 3.0"
Я бы вообще его не рекомендовал бы даже.
http://dle-news.ru/tips/33-ispolzovanie_ljubykh_php_vstavok_v_shabl onakh.html
P.S.: знаю что 2006, но все равно можно было и получше написать.
Упомянутый же фрагмент закрывает эти неявные теги, так что получается
Т. е. код будет исполняться не как PHP, а как HTML с возможностью вставки внутрь PHP-фрагментов.
Благодаря такой обёртке $tpl->result['main'] теперь может содержать не только чистый HTML-код, но и PHP-вставки.
А для чего понадобилось разбивать константу '<?php ' на '<' и '?php ', не знаю. По идее интерпретатор не должен никак реагировать на теги внутри строковых констант.
Почему бы не написать просто "<?php" ?
че удобней-то есть? хамл?
Прям в Twig_Environment::loadTemplate()
причем в виме эта штука всю подсветку рушит, а как в топике
eval (' ?' . '>'... все ок
Нет чтобы подсветку пофиксить, так они код портят...
Беру минус(ы) на себя если что.
Главное, чтобы не минус 5 сразу, потому что тогда комментарий превратится в кат.
http://imgur.com/gFYMr0F.png
http://php.net/manual/ru/language.basic-syntax.phpmode.php#92643