|
|
|
| подскажите, пожалуйста, правильное решение.
есть данные из адресной строки, передача методом GET, цифры и слова, передаются id и название каталога.
вот сделал такое выражение, но работает криво.
if(!preg_match("#^([0-9]{1,2}|([а-я ][\'\"])+?)$#i",$arr)){
echo "<html><head><meta http-equiv='refresh' content='0; url=../../include/warning.php'></head></html>";
exit();
}
|
получается, что передаётся id каталога и его название(кирилицей).
я только коснулся регулярных, путаюсь страшно.
если в этом выражении убрать [\'\"], то всё работает, если оставить - перекидывает на указаную страницу, даже если данные введены верно.
как подправить выражение? | |
|
|
|
|
|
|
|
для: Slo_Nik
(30.03.2009 в 00:55)
| | есть данные из адресной строки, передача методом GET,цифры и слова, передаются id и название каталога.
Странное конечно выражение и или или, но все же:
if(!preg_match("#^([0-9]{1,2}|([а-я '\"])+)$#i",$arr)){
|
UPD Stop Вам нужны кавычки или нет?
(Очень интересно, где в адресной строке встречаются кавычки?)
Если нет то:
if(!preg_match("#^([0-9]{1,2}|([а-я])+)$#i",$arr)){
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(30.03.2009 в 21:31)
| | кавычки и аппострофы не нужны, тут я прогнал маленько, надо было ещё [^'\"] добавить, но всё моя невнимательность....
как я понял из прочитаного по регулярным, то если надо запретить использование каких то символо, то надо перед ними поставить ^, во втором Вашем примере ни где явно не запрещается использования ' ".
Можно ли написать так
([а-я ^'\"])+?
и возник второй вопрос по этому же выражению
i указывает на то, что данные обрабатываются без учёта регистра, но пришлось дописывать [a-zA-Zа-яА-я] несмотря на то что указан был модификатор i
почему не работает модификатор? | |
|
|
|