Допустим правильно нужно ввести такое:
Шаблон: DATE_число:месяц:год
Пример: DATE_28:08:11
Зараниее спасибо!
Спустя 4 минуты, 54 секунды (28.07.2011 - 22:40) Winston написал(а):
C помощью регулярки, так
Но оно не решит проблемы если будет введено 99:99:9999
preg_match("#^[\d]{2}:[\d]{2}:([\d]{2}|[\d]{4})$#", $str);
Но оно не решит проблемы если будет введено 99:99:9999
Спустя 3 минуты, 43 секунды (28.07.2011 - 22:44) cyberside написал(а):
Тоесть если будет введено к примеру DUTE_9:9:2322 Оно не выдает ошибку?
Или не выдаст только при DUTE_99:99:9999 (DATE_99:99:9999)
Или не выдаст только при DUTE_99:99:9999 (DATE_99:99:9999)
Спустя 1 минута, 3 секунды (28.07.2011 - 22:45) Winston написал(а):
Цитата (cyberside @ 28.07.2011 - 22:44) |
9:9:2322 |
Будет ошибка
Цитата (cyberside @ 28.07.2011 - 22:44) |
99:99:9999 |
Не будет ошибки
Спустя 22 секунды (28.07.2011 - 22:45) alex12060 написал(а):
var_dump(preg_match('#^DATE_[\d]{2}:[\d]{2}:[\d]{2}$#u', 'DATE_28:08:11'));
Спустя 3 минуты, 54 секунды (28.07.2011 - 22:49) cyberside написал(а):
Если я понял правильно нужно записать так:
if($_POST['DATE'] = var_dump(preg_match('#^DATE_[\d]{2}:[\d]{2}:[\d]{2}$#iu', 'DATE_28:08:11'))){
echo "Okey!";
}esle{
echo "Bad!";
}
Спустя 2 минуты, 20 секунд (28.07.2011 - 22:51) Winston написал(а):
А вот такая проверка будет самая надежная. Никто не обойдет :)
$date = "31:02:2011";
$date = preg_split("/:/", $date);
if(checkdate($date[1], $date[0], $date[2]))
echo 'ok';
else
echo 'bad';
Спустя 41 секунда (28.07.2011 - 22:52) alex12060 написал(а):
cyberside
Нет :)
Так уж:
Нет :)
Так уж:
if(preg_match('#^DATE_[\d]{2}:[\d]{2}:[\d]{2}$#u', $_POST['DATE']) == true)
echo 'Ok';
else
echo 'Bad';
Спустя 49 секунд (28.07.2011 - 22:53) Winston написал(а):
Цитата (cyberside @ 28.07.2011 - 22:49) |
Если я понял правильно нужно записать так |
Нет
Так
if(preg_match('#^DATE_[\d]{2}:[\d]{2}:(?:[\d]{2}|[\d]{4})$#iu', 'DATE_28:08:11')){
echo "Okey!";
}esle{
echo "Bad!";
}
Спустя 1 минута, 46 секунд (28.07.2011 - 22:54) cyberside написал(а):
Благодарю за помощь!
Спустя 4 минуты, 49 секунд (28.07.2011 - 22:59) alex12060 написал(а):
PHPprogrammer
Кстати, раз уж ты затронул функцию checkdate(), то скажу, что такую дату она распознает:
А такую, нет:
Кстати, раз уж ты затронул функцию checkdate(), то скажу, что такую дату она распознает:
var_dump(checkdate(06, 06, 07));
А такую, нет:
var_dump(checkdate(06, 06, 08));
var_dump(checkdate(08, 06, 07)); // и эту :)
Спустя 6 минут, 36 секунд (28.07.2011 - 23:06) cyberside написал(а):
Можно еще гдето, посмотреть синтаксис preg_match()
Спустя 28 секунд (28.07.2011 - 23:06) Winston написал(а):
Странно, но так работает
А вот поставив
Уже не работает
Спустя 43 секунды PHPprogrammer написал(а):
$date = "08:06:07";
$date = preg_split("/:/", $date);
if(checkdate($date[1], $date[0], $date[2]))
echo 'ok';
else
echo 'bad';
А вот поставив
$date = "02:29:07";
Уже не работает
Спустя 43 секунды PHPprogrammer написал(а):
Цитата (cyberside @ 28.07.2011 - 23:06) |
Можно еще гдето, посмотреть синтаксис preg_match() |
Тебе уже показали пример. А, что еще надо ?
Спустя 2 минуты, 42 секунды (28.07.2011 - 23:09) alex12060 написал(а):
PHPprogrammer
Потому-что функция приводит к string, а не к int, как в моих примерах
Вот именно в кавычки и надо обрамлять, чтобы сработало.
Потому-что функция приводит к string, а не к int, как в моих примерах
Вот именно в кавычки и надо обрамлять, чтобы сработало.
Спустя 1 минута, 45 секунд (28.07.2011 - 23:11) cyberside написал(а):
Хочу подробнее изучить эту полезную штуку...
Спустя 2 минуты, 45 секунд (28.07.2011 - 23:14) Winston написал(а):
Цитата (cyberside @ 28.07.2011 - 23:11) |
Хочу подробнее изучить эту полезную штуку |
Какую ? рег, checkdate ?
Спустя 1 минута, 17 секунд (28.07.2011 - 23:15) YVSIK написал(а):
а я так решил эту задачу для себя
в поля вставлет не юзер данные ;именно не юзер а PHP функнцией date
и прикрыл поле от пользователя саму форму чтоб от не смог её изменить
а если надо изменить дату то мона придумать как ввести число и подставлять
вместо числа 30 любое переменной
функция её сама сформирует и всё ВУАЛЛЯ!
в поля вставлет не юзер данные ;именно не юзер а PHP функнцией date
и прикрыл поле от пользователя саму форму чтоб от не смог её изменить
echo date("Y:m:d",time()+ 30*24*60*60);?>" readonly="readonly"
а если надо изменить дату то мона придумать как ввести число и подставлять
вместо числа 30 любое переменной
функция её сама сформирует и всё ВУАЛЛЯ!
Спустя 51 секунда (28.07.2011 - 23:16) alex12060 написал(а):
cyberside
Тебе нужно читать про RegExep
http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2
Тебе нужно читать про RegExep
http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2
Спустя 8 минут, 15 секунд (28.07.2011 - 23:24) Invis1ble написал(а):
alex12060, PHPprogrammer
можно и без скобок обойтись
cyberside
добро пожаловать
можно и без скобок обойтись
var_dump((bool)preg_match('#^DATE_\d{2}:\d{2}:\d{2}$#', 'DATE_28:08:11'));
cyberside
добро пожаловать
Спустя 2 минуты, 58 секунд (28.07.2011 - 23:27) 03x1 написал(а):
Цитата (PHPprogrammer @ 28.07.2011 - 20:06) |
Странно, но так работает$date = "08:06:07"; А вот поставив $date = "02:29:07"; Уже не работает |
Подставь в конец
foreach ($date as $key){
echo $key . "<br />";
}
И увидишь почему не работает.
Спустя 3 минуты, 17 секунд (28.07.2011 - 23:30) Invis1ble написал(а):
зачем вообще там preg_split(), если explode() решает ту же задачу
Спустя 1 минута, 11 секунд (28.07.2011 - 23:31) Winston написал(а):
Цитата (Invis1ble @ 28.07.2011 - 23:30) |
зачем вообще там preg_split(), если explode() решает ту же задачу |
Извращения
Спустя 3 минуты, 52 секунды (28.07.2011 - 23:35) cyberside написал(а):
preg_match('#^DATE_[\d]{2}:[\d]{2}:[\d]{2}$#u', $_POST['DATE'])
Как правильно написать чтобы можно было вводить год как 11 так и 2011?
Тоесть, но я так понял что это не верно:
preg_match('#^DATE_[\d]{2}:[\d]{2}:[\d]{2-4}$#u', $_POST['DATE'])
Спустя 2 минуты, 16 секунд (28.07.2011 - 23:38) Invis1ble написал(а):
var_dump((bool)preg_match('#^DATE_\d{2}:\d{2}:\d{2}(?:\d{2})?$#', 'DATE_28:08:11'));
Спустя 4 минуты, 17 секунд (28.07.2011 - 23:42) Winston написал(а):
Или же
var_dump((bool)preg_match('#^DATE_\d{2}:\d{2}:(?:\d{2}|\d{4})?$#', 'DATE_28:08:11'));
Спустя 1 минута, 5 секунд (28.07.2011 - 23:43) Invis1ble написал(а):
PHPprogrammer
Цитата |
var_dump((bool)preg_match('#^DATE_\d{2}:\d{2}:(?:\d{2}|\d{4})?$#', 'DATE_28:08:11')); |
ошибочка, правильный вариант:
var_dump((bool)preg_match('#^DATE_\d{2}:\d{2}:(?:\d{2}|\d{4})$#', 'DATE_28:08:11'));
Спустя 2 минуты, 8 секунд (28.07.2011 - 23:45) Winston написал(а):
Ну да. ? не заметил