[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: математика в тексте
Guest09
не знаю как точней назвать..

есть некая строка, скажем "случайный текст 5*10 дальше текст"
если сделать вывод её, текст отобразится как есть
но хотелось бы чтобы текст обрабатывался и выводилось "случайный текст 50 дальше текст"

т.е происходили все сложения вычитания и тд
Guest09
Эм близко, но строку: 0.3*100
eval отображает как есть
Игорь_Vasinsky
покажи как сделал.

_____________
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
Делаю по примеру http://www.php.su/functions/?eval
Но суть в том что мне надо посчитать, а не объединить..

$str="проверка 5*5 чему то равно";
echo $str."<br>";
eval ("\$str = \"$str\";");
echo $str;
Visman
$str="проверка 5*5 чему то равно";
echo $str."<br>";
preg_match('#([\+-\d\.\/\*\s]+)#i', $str, $matches);
eval ("\$str = $matches[1];");
echo $str;

Регулярка конечно не фонтан, но что есть ;)
Guest09
Visman, пасиб, но появилась другая трабла, у меня в некоторых местах идёт умножение на не конечные числа.
т.е скажем:
5 * 5 + x

вот 5 на 5 мне на до умножить, а икс оставить как есть со знаком + и тд.
не подскажите как тут быть?
Visman
Вероятно парсер писать надо, чтобы он такие случаи понимал.
С одной регуляркой, думаю, сложно все варианты отследить.
killer8080
$text = 'проверка 5 * 5 / 4 + x чему то равно';
echo preg_replace('#\d+(\.\d+)?(([ ]*[\+\*/-][ ]*)\d+(\.\d+)?)+#e', '$0', $text);
Visman
killer8080, осталось удалить текст не относящийся к формула biggrin.gif
killer8080
Цитата (Visman @ 27.02.2012 - 09:23)
killer8080, осталось удалить текст не относящийся к формула

читаем внимательно вопрос автора
Цитата (Guest09 @ 26.02.2012 - 15:58)
есть некая строка, скажем "случайный текст 5*10 дальше текст"
если сделать вывод её, текст отобразится как есть
но хотелось бы чтобы текст обрабатывался и выводилось "случайный текст 50 дальше текст"

sergeiss
Наверное, надо ту часть, которая требует обработки, как-то выделить. Типа BB-тэгов.

//Тогда запись типа 
$str="проверка [math 5*5] + х чему то равно";
//или такой
$str="проверка [math]5*5[/math] + х чему то равно";

будет обработать достаточно легко.

Иначе получается неопределенность, которую никакой парсер не выцепит.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Guest09
Оха всем спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.