|
автор: посетитель (12.05.2005 в 19:58) |
|
| подскажите как лучше сделать проверку на содержание в переменнаяой спецсимволов.
Допустим есть переменная
в ней текст, нужно чтобы если в тексте есть символы !@#$%&*()+><:;=/\., то вывелось сообщение что мол недопустимое сообщение. а если таких символов необнаружено то всё ок. | |
|
|
|
|
|
|
|
для: посетитель
(12.05.2005 в 19:58)
| | Хм... может ещё проще разрешить только числа и буквы при помощи регулярных выражений? Или кавычки следует разрешить?
<?php
if(!match("|^[\d\w]+$|i",$text)) exit("Сообщение недопустимого формата!");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.05.2005 в 21:07)
| | 1) Интересная функция match(), может быть, preg_match()?
2) Регулярное выражение: наверное, нужно добавить отрицание:
Итого:
<? if(preg_match("|[^\d\w]+|i",$Str)) exit("Сообщение недопустимого формата!"); ?>
|
3) Почему вы используете ограничитель |, а не / ? | |
|
|
|
|
|
|
|
для: antf
(12.05.2005 в 21:37)
| | 1) Конечно, preg_match, префикс съелся :)))
2) В изначальном варианте было
<?
if(!preg_match("|^[\d\w]+$|i",$Str)) exit("Сообщение недопустимого формата!");
?>
|
поэтому и отрицание отсутствует.
3) Ограничители можно использовать любые, если в качестве ограничителя выступает какой-то символ, его следует экранировать, / достаточно часто встречается в запросах, поэтому чтобы не экранировать его и не усложнять запрос, я использую либо | (когде нет необходимости в его специальных возможностях внутри запроса), либо # - очень хорошо видно, где начинается запрос, а где заканчивается, а вообще можно использовать любой символ. | |
|
|
|
|
автор: посетитель (12.05.2005 в 23:49) |
|
|
для: cheops
(12.05.2005 в 21:07)
| | нужно разрешить символ нижнего подчёркивания. | |
|
|
|
|
|
|
|
для: посетитель
(12.05.2005 в 23:49)
| |
<? if(preg_match("|[^\d\w_]+|i",$Str)) exit("Сообщение недопустимого формата!"); ?>
|
| |
|
|
|