php: вопрос с алгоритмом

Discussion in 'PHP' started by GreenBear, 2 Mar 2007.

  1. GreenBear

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

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    есть строка... есть 2 массива.
    в массиве 1 - что не может быть в переменной
    в массиве 2 - что может быть в переменной.

    так вот суть вопрос:
    сделать так, чтобы если в массиве есть плохое слово и этого слова нету в разрешенных, то скрипт останавливает.
    если есть пллохое слово и это слово есть в разершенных, то скрипт идет дальше.

    например:
    PHP:
    $bad_array = array('test''test2''test3');
    $allow_array = array(
           
    'xaxa' => array('test''test3'),
    );
    если str=test test3 или str=test3 или str=test, то продолжаем,
    а если str равна, например, test test2 то надо остановиться..

    в общем вроде бы просто, но никак не лезет в голову, как на пхп это реализовать.
     
  2. GreenBear

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

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    Даю 150 рублей, тому кто подскажет реализацию.
    Срочно надо.
     
  3. Stefun

    Stefun Elder - Старейшина

    Joined:
    19 Nov 2006
    Messages:
    48
    Likes Received:
    29
    Reputations:
    11
    PHP:
    $i=0;
    foreach(
    $bad_array as $v)
    {
     if(
    $str==$v) {$i=1;foreach($allow_array as $v2) if($str==$v2) {$i=0;break;}}

    }
    if(
    $i) exit;
     
    #3 Stefun, 2 Mar 2007
    Last edited: 2 Mar 2007
  4. Stefun

    Stefun Elder - Старейшина

    Joined:
    19 Nov 2006
    Messages:
    48
    Likes Received:
    29
    Reputations:
    11
    вроде так
     
  5. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    374
    Reputations:
    460
    Вот моя реализация этого алгоритма!
    PHP:
    <?
    $bad_array = array('bla''xyx''spider');
    $good_array = array('123''456''789');
    $allow_array = array( 'xaxa' => array('test''xyx''test3' 'bla'),); 

    foreach (
    $allow_array as $index)
    {
            
    $result str_replace($bad_array$good_array$index);
    }
    print_r ($result);
    ?>
     
  6. GreenBear

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

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    Вы не совсем поняли...
    PHP:
    <?php

    $bad1 
    = array('test''test2''test3');
    $bad2 = array('xek1''xek2''xek3');

    $allow = array(
        
    'xaxa' => array('test''xek2'),
        
    'xuxu' => array('test3')
    );

    $vars = array(
        
    'mega' => 'traaaa',
        
    'lol' => 'test3 count',
        
    'xuxu' => 'lalal xek1' ,
        
    'xaxa' => 'llolol test'
    );

    foreach(
    $vars as $k=>$v){
            
            foreach(
    $bad1 as $b){
                
    //тут то и нужна эта реализация
            
    }
            foreach(
    $bad2 as $b){
                
    //
            
    }
    }

    ?>

     
  7. madnet

    madnet Умиротворенный

    Joined:
    9 Dec 2004
    Messages:
    868
    Likes Received:
    343
    Reputations:
    423
    Если я тебя правильно понял

    PHP:
    <?
    function 
    check($string)
    {
     
    $bad_array = array('test''test2''test3'); 
     
    $allow_array = array('test''test3'); 
     
     
    $string explode(" ",$string);
     foreach (
    $string as $temp)
     {
         if (
    in_array($temp,$bad_array) and (!in_array($temp,$allow_array))) return false;  
     }
     return 
    true;
    }

    $string "test test2";  
    if (
    check($string)) echo("ALL FINE"); else echo("FUCK");
    ?>
     
    _________________________
  8. GreenBear

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

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    Madnet, спасибо больше. Если нужно то, что во 2 посте, напиши в асику кошелек.
     
  9. madnet

    madnet Умиротворенный

    Joined:
    9 Dec 2004
    Messages:
    868
    Likes Received:
    343
    Reputations:
    423
    не смеши, обращайся, если нужна помощь.
     
    _________________________