[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отделение и вывод числа (инт) из текста
h0ck
вот форма
<form action="action.php" method="post">
<p>
Ваш возраст: <input type="text" name="age" /></p>
<p><input
type="submit" /></p>
</form>

Обработчик
Вам <?php echo (int)$_POST['age']; ?> лет.


Если в форму сколько вам лет ввести число всё ок, если например "19 лет скоро будет" то тоже нормально обрабатывает, а если ввести "мне скоро 19" то выводит почему то 0. как ето исправить?
olimpset
Проблема тут (int)$_POST['age'], если вы поставили (int)спереди переменной, тогда он смотрит только на первое число, а если сперва текст то не видит, надо (int)$_POST['age'](int)

Или (int) вообще удалите, он тут совсем не нужен.

Помог - ставите плюсик!
h0ck
Цитата (olimpset @ 27.06.2013 - 14:58)
Проблема тут (int)$_POST['age'], если вы поставили (int)спереди переменной, тогда он смотрит только на первое число, а если сперва текст то не видит, надо (int)$_POST['age'](int)

Или (int) вообще удалите, он тут совсем не нужен.

Помог - ставите плюсик!

Как нистранно если поставить инт после глобальной переменной то он не то что не работает так ещё и ошибки выдает, а чисто для себя интересно узнать как замутить так что б в тексте искало первую цифру от 4 до 150 и выводило как переменную "age"(сколько лет)
kaww
Цитата (olimpset @ 27.06.2013 - 14:58)
(int)$_POST['age'](int)
o_O
Регуляркой:
        preg_match('/(\d+)/', 'мне скоро 19 лет', $m);
var_dump($m[1]);

koala
kaww, если быть точнее :)

if (preg_match('/([4-150])+/', $_POST['age'], $b))


_____________
Vi Veri Veniversum Vivus Vici
kaww
koala
, когда отвечал этого условия еще не было wink.gif
h0ck
спс за ответы, п.с. ушёл разбирать
if (preg_match('/([4-150])+/', $_POST['age'], $b))

по полочкам, а то я ещё учуся токо)
Lumix
патамушта гладиолус...
(int)$_POST['age']

(int) по твоему что это такое ? и зачем ?
еще больше удивляют коменты выше, еще и плюсик просят... капец полный...
CodeKeeper
Хех, автор сначала явно указывает интовый тип данных, но потом почему-то ему хочется иметь интовостринговый(это такой новый тип) biggrin.gif .

Автор нахрена вся эта какафония типа "мне скоро 19 будет"?

h0ck
Цитата (CodeKeeper @ 27.06.2013 - 19:12)
Хех, автор сначала явно указывает интовый тип данных, но потом почему-то ему хочется иметь интовостринговый(это такой новый тип) biggrin.gif .

Автор нахрена вся эта какафония типа "мне скоро 19 будет"?

Чтобы было, малоли я зайду на какой то сайт там нужно ввести цифру, а я им поезию по пьяни напишу вместе с цифрой... Шутка канешно, но блин нужно для своих чёрных дел ph34r.gif
CodeKeeper
О да, постановке задачи могут позавидовать даже самые умные умы...
MORFIUS-INC
Примерно так это должно работать. Надеюсь все понятно.
<form action=<?=$_SERVER[SCRIPT_NAME]?> method=get><!--action=место действия скрипта (а именно сам файл где он запущен)-->
<input type=text name=string><!--обязательный параметр имя строки-->
<input type=submit><!--кнопка отправки-->
</form>


<?php
//Регулярное выражение обозначающее что в МАССИВ "$match" будет записано первое найденое вырожение
//соответсвтующее ЛЮБОМУ колличеству ЦИФР в одну линию без пробелов.

preg_match('/[0-9]+/',$_REQUEST['string'], $match);
$x=implode("",$match);//Перобразует массив в строку (число)
if($x==0)//Заглушка, чтобы при первом открытии скрипта нам ничего не написало
{
echo "";
}
elseif($x>150)//Проверяем не больше ли 150
{
echo "Вали от сюда старпер!";
}
elseif($x<4)//Проверяем не меньше ли 4
{
echo "Вали от сюда сосунок!";
}
else//Если мы попали в диапазон
{
echo "А ты наш клиент! Проходи!";
}
/*echo "<pre>";//полезные функции если нужно понять структуру работы программы
print_r($GLOBALS);
echo "</pre>";*/

?>


_____________
Рука бойцов колоть устала
Быстрый ответ:

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