Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как перевести стринговое выражение в числовую?
 
 автор: nihilist   (15.03.2006 в 15:30)   письмо автору
 
 

Народ хоть кто-нить,
нигде ничего не могу найти.

Есть стринговая переменная, в ней записано выражение (переменные и операторы)
прим.
$c=0;$b=1;
$a = ' $c+2 - $b'; //обычный стринг
нужно это всё расчитать, т.е. расчить чиму равно $a

   
 
 автор: Trianon   (15.03.2006 в 15:39)   письмо автору
 
   для: nihilist   (15.03.2006 в 15:30)
 

см. eval()

   
 
 автор: Artemy   (15.03.2006 в 15:50)   письмо автору
 
   для: nihilist   (15.03.2006 в 15:30)
 

<?PHP
 
//Первый вариант
 
print settype($a,integer);
 
//Второй вариант
 
print (int)$a;
?>

   
 
 автор: nihilist   (15.03.2006 в 16:13)   письмо автору
 
   для: Artemy   (15.03.2006 в 15:50)
 

oba ne rabotayut.> Artemy

   
 
 автор: Artemy   (15.03.2006 в 16:21)   письмо автору
 
   для: nihilist   (15.03.2006 в 16:13)
 

Вообще РНР и без этого сам приcваивает нужный тип переменной.
Если Вы хотите получить число из этого $a = ' $c+2 - $b';, то Вам просто нужно убрать ковычки!

<?PHP
 $c
=0;$b=1;
 print 
' $c+2 - $b'//Выведет $c+2 - $b
 
print "$c+2 - $b"//Выведет 0+2 - 1
 
print $c+$b//Выведет 1
?>

   
 
 автор: nihilist   (15.03.2006 в 16:24)   письмо автору
 
   для: Artemy   (15.03.2006 в 16:21)
 

>Вообще РНР и без этого сам приваивает нужный тип переменной.
>Если Вы хотите получить число из этого $a = ' $c+2 - $b';,
>то Вам просто нужно убрать ковычки!
>
>
&lt;?PHP
> $c=0;$b=1;
> print ' $c+2 - $b'; //Выведет $c+2 - $b
> print "$c+2 - $b"; //Выведет 0+2 - 1
> print $c+2 - $b; //Выведет 1
>?>
>

Вся фишка в том, что выражение я получаю постом.

   
 
 автор: Artemy   (15.03.2006 в 16:28)   письмо автору
 
   для: nihilist   (15.03.2006 в 16:24)
 

Приведите пример строки переданной постом.

   
 
 автор: nihilist   (15.03.2006 в 16:34)   письмо автору
 
   для: Artemy   (15.03.2006 в 16:28)
 

Форма отпровляет "formula "

<form name="form1" method="post" action="waarheidstabel.php">
<input name="formula" type="text" id="formula">
<input type="submit" name="Submit" value="Submit">
</form>

tut poluchayem i schitayem:

$c = 0;
$b = 1;
$a = $_POST['formula'];
print "Eto a: $a";

   
 
 автор: Trianon   (15.03.2006 в 16:38)   письмо автору
 
   для: nihilist   (15.03.2006 в 15:30)
 

<?
$c
=0;$b=1;
$a ' $c+2 - $b'//обычный стринг
eval("\$a=$a;");echo $a;
?>

   
 
 автор: nihilist   (15.03.2006 в 16:43)   письмо автору
 
   для: Trianon   (15.03.2006 в 16:38)
 

Сенкс огромное!>Trianon

   
 
 автор: Trianon   (15.03.2006 в 16:48)   письмо автору
 
   для: nihilist   (15.03.2006 в 16:43)
 

Учтите, что применяя эту конструкцию в лоб, для обработки данных формы, вы получаете огромную дыру в безопасности.

   
 
 автор: nihilist   (15.03.2006 в 16:56)   письмо автору
 
   для: Trianon   (15.03.2006 в 16:48)
 

Vse Ok,
t.k polzovatsya toy progay budu tolko ya , xe xe!

   
 
 автор: Artemy   (15.03.2006 в 16:50)   письмо автору
 
   для: Trianon   (15.03.2006 в 16:38)
 

Гм... Буду знать! :-|

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования