PDA

Просмотр полной версии : Помогите с preg_replace


guest3297
22.11.2007, 09:39
Надо фильтровать входящие параметры используя preg_replace(). Помогите составить.

1) Запрет на !"№;%:?*()_+'`"|-+{}[]<>/\%
2) Разрешить только ввод цифр и нечего другова
3) Только букв нижнего регистра.

Isis
22.11.2007, 09:46
Достаточно зайти на пхп.нет
http://ru2.php.net/preg_replace

bul.666
22.11.2007, 09:47
$string = strtolower($string); // Переходим в нижний регистр
$string = str_replace("<","*",$string);
$string = str_replace("!","*",$string);
и т.д.
Тут знаки "<" "!" на выходе бeдут "*"...

Можно через массив

ЗЫ я дурак

guest3297
22.11.2007, 09:49
Надо написать условие,
if
фильтрация
else
недопустимые символы

По параметрам которые выше привел, спасибо за ссылки но мне нужен код.

Isis
22.11.2007, 09:53
1)
2)$content = preg_replace("#(\d)#i", "", $content);
3)$content = strtolower(preg_replace("#(\w)#i", "", $content));

bul.666
22.11.2007, 10:05
<?php
$string = "asdasdasdas!@!#!@ESAD)sad";
$string = strtolower($string);
$s = array("!",")");
foreach ($s as $i => $value) {
$pos = strpos($string,$s[$i]);
if ($pos == true) {
print "Wrong '$s[$i]' symbol <br>";
}
}
?>


ХЗ кроче

GreenBear
22.11.2007, 10:37
Надо написать условие,
это preg_match тогда.

KSURi
22.11.2007, 10:50
2)$content = preg_replace("#(\d)#i", "", $content);
А цифры тоже бывают нижнего и верхнего регистров?

Isis
22.11.2007, 11:02
KSURi, ты не одепт если не видишь ниже отличий

2 , 2

vizard-06
22.11.2007, 11:48
1

<?
$bag='';
$text='бля бля()+';
$s='!№;:?*()_`"|-+{}[]<>/\%'."'";
for($i=0;$i<strlen($s);$i++) {
$sub=substr($s,$i,1);
$subr='\\'.$sub;
if(ereg($subr,$text)) {
$bag.=$sub;
}
}
if(!empty($bag)) {
echo 'найдено '.strlen($bag).' - '.$bag;
}
else echo 'нет запретных символов';
?>

2

<?
$text=3453434;
if(preg_match("/^[0-9]+$/",$text)) {
echo 'одни цифры %)';
}
else echo 'ошибка, не все цфры!)))))';
?>

3

<?
$text='ыыыыыы';
if(preg_match("/^[a-zа-я]+$/",$text)) {
echo 'одни буквы';
}
else echo 'неть';
?>