Guest09
26.02.2012 - 17:58
не знаю как точней назвать..
есть некая строка, скажем "случайный текст 5*10 дальше текст"
если сделать вывод её, текст отобразится как есть
но хотелось бы чтобы текст обрабатывался и выводилось "случайный текст 50 дальше текст"
т.е происходили все сложения вычитания и тд
Guest09
27.02.2012 - 06:49
Эм близко, но строку: 0.3*100
eval отображает как есть
Игорь_Vasinsky
27.02.2012 - 07:50
покажи как сделал.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Guest09
27.02.2012 - 10:33
Делаю по примеру
http://www.php.su/functions/?evalНо суть в том что мне надо посчитать, а не объединить..
$str="проверка 5*5 чему то равно";
echo $str."<br>";
eval ("\$str = \"$str\";");
echo $str;
Visman
27.02.2012 - 10:46
$str="проверка 5*5 чему то равно";
echo $str."<br>";
preg_match('#([\+-\d\.\/\*\s]+)#i', $str, $matches);
eval ("\$str = $matches[1];");
echo $str;
Регулярка конечно не фонтан, но что есть ;)
Guest09
27.02.2012 - 10:53
Visman, пасиб, но появилась другая трабла, у меня в некоторых местах идёт умножение на не конечные числа.
т.е скажем:
5 * 5 + x
вот 5 на 5 мне на до умножить, а икс оставить как есть со знаком + и тд.
не подскажите как тут быть?
Visman
27.02.2012 - 11:00
Вероятно парсер писать надо, чтобы он такие случаи понимал.
С одной регуляркой, думаю, сложно все варианты отследить.
killer8080
27.02.2012 - 11:15
$text = 'проверка 5 * 5 / 4 + x чему то равно';
echo preg_replace('#\d+(\.\d+)?(([ ]*[\+\*/-][ ]*)\d+(\.\d+)?)+#e', '$0', $text);
Visman
27.02.2012 - 11:23
killer8080, осталось удалить текст не относящийся к формула
killer8080
27.02.2012 - 11:33
Цитата (Visman @ 27.02.2012 - 09:23) |
killer8080, осталось удалить текст не относящийся к формула |
читаем внимательно вопрос автора
Цитата (Guest09 @ 26.02.2012 - 15:58) |
есть некая строка, скажем "случайный текст 5*10 дальше текст" если сделать вывод её, текст отобразится как есть но хотелось бы чтобы текст обрабатывался и выводилось "случайный текст 50 дальше текст" |
sergeiss
27.02.2012 - 13:18
Наверное, надо ту часть, которая требует обработки, как-то выделить. Типа BB-тэгов.
$str="проверка [math 5*5] + х чему то равно";
$str="проверка [math]5*5[/math] + х чему то равно";
будет обработать достаточно легко.
Иначе получается неопределенность, которую никакой парсер не выцепит.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)