Помогите с preg_replace

Discussion in 'PHP' started by guest3297, 22 Nov 2007.

  1. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Надо фильтровать входящие параметры используя preg_replace(). Помогите составить.

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

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Достаточно зайти на пхп.нет
    http://ru2.php.net/preg_replace
     
  3. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    $string = strtolower($string); // Переходим в нижний регистр
    $string = str_replace("<","*",$string);
    $string = str_replace("!","*",$string);
    и т.д.
    Тут знаки "<" "!" на выходе бeдут "*"...

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

    ЗЫ я дурак
     
  4. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Надо написать условие,
    if
    фильтрация
    else
    недопустимые символы

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

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    1)
    2)$content = preg_replace("#(\d)#i", "", $content);
    3)$content = strtolower(preg_replace("#(\w)#i", "", $content));
     
  6. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    PHP:
    <?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>"
    }
    }
    ?>
    ХЗ кроче
     
    3 people like this.
  7. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    это preg_match тогда.
     
  8. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    А цифры тоже бывают нижнего и верхнего регистров?
     
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    KSURi, ты не одепт если не видишь ниже отличий

    2 , 2
     
    1 person likes this.
  10. vizard-06

    vizard-06 Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    55
    Likes Received:
    8
    Reputations:
    0
    1
    PHP:
    <?
    $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
    PHP:
    <?
        
    $text=3453434;
        if(
    preg_match("/^[0-9]+$/",$text)) {
        echo 
    'одни цифры %)';
        }
        else echo 
    'ошибка, не все цфры!)))))';
    ?>
    3
    PHP:
    <?
        
    $text='ыыыыыы';
        if(
    preg_match("/^[a-zа-я]+$/",$text)) {
            echo 
    'одни буквы';
        }
        else echo 
    'неть';
    ?>
     
    #10 vizard-06, 22 Nov 2007
    Last edited: 22 Nov 2007