Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   php: вопрос с алгоритмом (https://forum.antichat.xyz/showthread.php?t=34520)

GreenBear 02.03.2007 13:06

php: вопрос с алгоритмом
 
есть строка... есть 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 то надо остановиться..

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

GreenBear 02.03.2007 13:22

Даю 150 рублей, тому кто подскажет реализацию.
Срочно надо.

Stefun 02.03.2007 13:30

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; 


Stefun 02.03.2007 13:31

вроде так

DIAgen 02.03.2007 13:35

Вот моя реализация этого алгоритма!
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);
?>


GreenBear 02.03.2007 14:05

Вы не совсем поняли...
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){
            
//
        
}
}

?>


madnet 02.03.2007 14:09

Если я тебя правильно понял

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");
?>


GreenBear 02.03.2007 14:25

Madnet, спасибо больше. Если нужно то, что во 2 посте, напиши в асику кошелек.

madnet 02.03.2007 14:28

Цитата:

Сообщение от Green_Bear
Madnet, спасибо больше. Если нужно то, что во 2 посте, напиши в асику кошелек.

не смеши, обращайся, если нужна помощь.


Время: 14:50