Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнить строку! ...когда лень писать парсер 
:(
    Опции темы
quarz
Дата 24.1.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 7.1.2005

Репутация: 1
Всего: 3



Да, писать парсер действительно лень. Нужно выполнить арифметические действия в строке. Строка примерно такая: '4+8*2' . Это самый простой случай - без скобок, логарифмов, корней, и т.д
Пробовал выполнять ее с помощью eval(). Ноль реакции! возвращает тоже самое что на входе. Почему? Она же вроде исполняет пхп код в строке. Точно знаю, что пхп бы этот код выполнил...

Теперь для чего мне этот бред нужен)) осенило меня вдруг написать построитель графиков. Начал на том, что было под рукой - блокнот smile

рабочий вариант буду выкладывать сюда
PM MAIL   Вверх
-=Ustas=-
Дата 25.1.2006, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(quarz @ 24.1.2006, 23:17 Найти цитируемый пост)

Строка примерно такая: '4+8*2' .

Цитата(quarz @ 24.1.2006, 23:17 Найти цитируемый пост)

Пробовал выполнять ее с помощью eval(). Ноль реакции! возвращает тоже самое что на входе. Почему? Она же вроде исполняет пхп код в строке. Точно знаю, что пхп бы этот код выполнил...

PHP бы выполнил это точно. Но эта строка - не ПХП-код! Тогда, если не хочешь заморочек, можно попробовать так <?=(4+8*2)?>, и затем через eval();


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Kefir
Дата 25.1.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



имхо, должно сработать:
Код

eval("return 4+8*2;");

PM MAIL WWW Skype   Вверх
AntonioBanderaz
Дата 25.1.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



eval("echo 4+8*2;");


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Mal Hack
Дата 25.1.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Kefir @ 25.1.2006, 14:13 Найти цитируемый пост)

имхо, должно сработать:

Нет, куда ты возаращаешь значение?

Расширю ответ Бандераса
Код
eval("echo $t= 4+8*2;"); 

PM ICQ   Вверх
Kefir
Дата 25.1.2006, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



Mal Hack, RTFM smile
Цитата

A return statement will terminate the evaluation of the string immediately. As of PHP 4, eval() returns NULL unless return is called in the evaluated code, in which case the value passed to return is returned.

Eval()@www.php.net

Мой пример работать всё-таки должён.

Это сообщение отредактировал(а) Kefir - 25.1.2006, 21:28
PM MAIL WWW Skype   Вверх
S.A.P.
Дата 26.1.2006, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



Расширю ответ Kefir smile
Код

$a = eval("return 4+8*2;");


Это сообщение отредактировал(а) S.A.P. - 26.1.2006, 08:42
PM MAIL   Вверх
Mal Hack
Дата 26.1.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Ошибку понял.
PM ICQ   Вверх
quarz
Дата 27.1.2006, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 7.1.2005

Репутация: 1
Всего: 3



спасибо всем))

теперь рисуются графики функций с */-+. Щас хочу сделать автомасштам, чтобы если график не сливался с осями
http://techport.fatal.ru/graph.php
PM MAIL   Вверх
Ciber SLasH
Дата 27.1.2006, 04:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



ИМХО рисование графиков — это в сторону JavaScript, а не для PHP. Зачем по 150 раз обращаться к серверу, когда всё это можно сделать на клиенте...
PM   Вверх
Lixil
Дата 27.1.2006, 15:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Ciber SLasH @ 27.1.2006, 04:48 Найти цитируемый пост)

когда всё это можно сделать на клиенте...


А как?
  Вверх
Ciber SLasH
Дата 27.1.2006, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Цитата(Lixil @ 27.1.2006, 15:36 Найти цитируемый пост)

А как?

Зайди сюда и просмотри внимательно всё тему и позаходи по ссылкам в теме:
http://forum.vingrad.ru/index.php?showtopic=53487

там по одной из ссылок отличная библиотека по работе с графиками...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0871 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.