Различные вопросы по PHP и MySQL

102K
.
# Udesign (01.09.2016 / 14:09)
спасибо все работает как ты сказал
написал жерез http:// бан сработала
Я пока написал ответ, ты меня опередил )
.
ДоХтор, а если сделаю так

public static function antirek($str)
    {
        $replace = array(
            'sayt.ru' => '',
            'sayt.uz' => ''
        );

        return strtr($str, $replace);
    }


и так проверять
$foo = functions::antirek($_POST['text']);
 
if (!empty($foo)) { 
$error[] = 'BAN';
}


это правильно
.
или так

public static function antirek($str)
    {

$kod = array(
'sayt.ru', 'sayt.uz'
);

foreach ($kod as $word) {
$str = preg_replace("/".$word."/iu", "", $str);
$result = strip_tags($str);
}

        return $result;
    }


и проверку
.
# Udesign (01.09.2016 / 14:18)
ДоХтор, а если сделаю так

public static function antirek($str)
{
$replace = array(
'sayt.ru' => '',
'sayt.uz' => ''
);

return strtr($s
Да, можно и так. Но при таком подходе у тебя не будет универсальности, и тебе придётся вручную наполнять массив $replace[] запрещёнными ссылками.
.
Udesign, Использовать цикл не нужно, preg_replace() умеет работать и с массивами.
.
# ДоХтор (01.09.2016 / 14:31)
Udesign, Использовать цикл не нужно, preg_replace() умеет работать и с массивами.
как вот так что ли

public static function antirek($str)
    {
 
$kod = array(
'sayt.ru', 'sayt.uz'
);
 

$str = preg_replace("/".$kod."/iu", "", $str);
$result = strip_tags($str);

 return $result;
    }
.
(\/)____o_O____(\/)
Udesign, так работать не будет
надо как то так
array('|abc|iu', '|def|iu')
.
# Udesign (01.09.2016 / 14:35)
как вот так что ли

public static function antirek($str)
{

$kod = array(
'sayt.ru', 'sayt.uz'
);


$str = preg_replace("/".$kod."/iu", "", $str);
$result = strip_tags($str);

ret
Нет, надо хотя бы так
function antirek($str) {
    $pattern = [
        '~sayt\.ru~iu',
        '~sayt\.uz~iu'
    ];

    return preg_replace($pattern, '', $str);
}
.
(\/)____o_O____(\/)
ДоХтор, в одинарных можно не экранировать
.
# Koenig (01.09.2016 / 15:06)
ДоХтор, в одинарных можно не экранировать
Почему? Внутри шаблона же точка будет означать любой символ.
Всего: 7969