Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: PHP вывод текста, который будут интерпретироваться как php?
цитата
02/05/15 в 20:52
 Vyacheslav
Пример:
есть файл с именем test.php
Код:

<?php
$str = '...какой-то текст <?php include "some-file.php"; ?> какой-то текст...';
echo $str;
?>

После выполнения внутри test.php будет строка <?php include "some-file.php" ?>, которая не интерпретируется php, а идёт как текст. Существуют ли конструкции, которые позволят выдать строковую переменную так, чтоб если внутри этой переменной будет php код, то он будет выполнен а всё остальное вылезет текстом?

Смысл в том, что есть текстовый темплейт, который обрабатывается налету и в нём есть елемнтарные вставки <?php include блоков повторяющегося кода.
цитата
02/05/15 в 21:20
 ibiz
http://php.net/eval
цитата
03/05/15 в 03:15
 Pentarh
Предлагаю ввести уголовную ответственность за использование eval() в коде smail11.gif
цитата
03/05/15 в 08:29
 Ailk
кури в сторону ob_start. Там примеры есть.
цитата
03/05/15 в 10:00
 Stek
ob_start вообще то с буфером вывода работает. Курить именно eval надо, ну или траву, что полегче smail101.gif
цитата
03/05/15 в 10:20
 ibiz
Pentarh писал:
Предлагаю ввести уголовную ответственность за использование eval() в коде smail11.gif


вам шашечки ли ехать? trollface.png
можно и распарсить регэкспом входящие данные и отформатировать и сделать кучу проверок, но зачем усложнять себе жизнь, когда можно сделать за 5 минут и все заработает trollface.png
цитата
03/05/15 в 10:43
 Vyacheslav
Мда, прийдётся заменить инклуды на свои токены.
цитата
03/05/15 в 21:05
 Ailk
Stek писал:
ob_start вообще то с буфером вывода работает. Курить именно eval надо, ну или траву, что полегче smail101.gif

Ну да, как я понял что-то текстовое выводит тот инклуд, самое то получается. не евал же в самом деле. К тому же буфер можно в переменную засунуть.
цитата
03/05/15 в 22:57
 Pentarh
ibiz писал:
вам шашечки ли ехать?

Как бывший админ говорю. Все remote code execution уязвимости на eval строятся. По этому нужно возбуждать уголовное дело против разраба за такие шутки trollface.png
цитата
04/05/15 в 11:03
 rickdeckard
например сохраняй в php://memory и php://temp
другой вариант eval как уже говорили - не слушай тех кто говорит что нельзя использовать eval - они нифига не знают инструмент (как защитить свои скрипты) программируют только через гугл и на фремворках готовых.
цитата
04/05/15 в 12:01
 Stek
rickdeckard писал:
например сохраняй в php://memory и php://temp

Что именно ты туда собрался сохранять и зачем ?
цитата
05/05/15 в 21:26
 sniffer7
лучше использовать нормальные шаблоны вроде http://twig.sensiolabs.org/

а если совсем нужно, то можно ограничить возможности кода и вместо eval использовать что-то вроде http://symfony.com/doc/current/components/expression_language/introduction.html
цитата
06/05/15 в 17:56
 zap
-


Эта страница в полной версии