Фильтр ненужных слов на PHP

Форум для тех кто начинает осваивать язык php.
Domeenor
Сообщения: 10

Фильтр ненужных слов на PHP

Сообщение Domeenor » Ср май 11, 2016 4:23 pm

Код: Выделить всё

if (!is_null($user)) {
$steamInfo = $this->steamAuth->getUserInfo();
\
DB::table('users')
->
where('steamid64', $steamID)
->
update(['username' => $steamInfo->getNick(),
'avatar' => $steamInfo->getProfilePictureFull()]);
}

Ребят, помогите чтобы из getNick стирало ненужные слова из массива.
Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Фильтр ненужных слов на PHP

Сообщение Slash » Ср май 11, 2016 5:13 pm

Опешите подробнее, что именно надо?
Что делает функция getNick?

Код: Выделить всё

if (!is_null($user))
{
    $steamInfo = $this->steamAuth->getUserInfo();
    if (!in_array($steamInfo->getNick(), $nick))
    {
        \DB::table('users')
            ->where('steamid64', $steamID)
            ->update([
                'username' => $steamInfo->getNick(),
                'avatar'   => $steamInfo->getProfilePictureFull()
        ]);
    }

Видимо я не понял задачу, надо удалить из массива или надо проверить если ли ненужные слова в массиве?
Domeenor
Сообщения: 10

Re: Фильтр ненужных слов на PHP

Сообщение Domeenor » Ср май 11, 2016 5:15 pm

Выводит строку ник из массива steamInfo.
Slash писал(а):Видимо я не понял задачу, надо удалить из массива или надо проверить если ли ненужные слова в массиве?

Проверить, а затем удалить.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Фильтр ненужных слов на PHP

Сообщение Slash » Ср май 11, 2016 5:31 pm

Тогда надо надо использовать запрос вместо обновления (update) удаление (delete).
Гляньте, как в Вашем движке выполняется запрос на удаление записи? Следует делать по аналогии.

Код: Выделить всё

if (!is_null($user))
{
    $steamInfo = $this->steamAuth->getUserInfo();
    if (in_array($steamInfo->getNick(), $nick))
    {
        \DB::table('users')
            ->where('steamid64', $steamID)
            ->delete([
                'username' => $steamInfo->getNick(),
                'avatar'   => $steamInfo->getProfilePictureFull()
        ]);
    }
}

$nick - массив ненужных слов.

Гляньте, как в Вашем движке выполняется запрос на удаление записи? Следует делать по аналогии.
Например так:

Код: Выделить всё

        \DB::delete('users')
            ->where([
                'username' => $steamInfo->getNick(),
                'avatar'   => $steamInfo->getProfilePictureFull()
        ]);

К сожалению я проверить это не могу.
Domeenor
Сообщения: 10

Re: Фильтр ненужных слов на PHP

Сообщение Domeenor » Ср май 11, 2016 5:34 pm

Отфильтровать до выполнения запроса ни как?
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Фильтр ненужных слов на PHP

Сообщение Slash » Ср май 11, 2016 5:48 pm

Можно. Например имеем массив ненужных слов:

Код: Выделить всё

# Список ненужных слов
$words = array( 
    
'Слово-1',
    'Слово-2',
    'Слово-3',
    'Слово-4',
    'Слово-5'
);

Проверяем каждое слово через цикл и создаем новый массив. Если совпадений не найдено, то загоняем в массив:

Код: Выделить всё

$norm = array();
foreach ($nick as $value)
{
    if (!in_array($value, $words))
    {
        $norm[] = $value;
    }

Тут массив: $nick - это список всех слов, которые надо отфильтровать.
Массив $norm - это уже отфильтрованный список слов, без ненужных слов.

Еще один вариант, сделать так:

Код: Выделить всё

$steamInfo = $this->steamAuth->getUserInfo();
if (!is_null($user) && !in_array($steamInfo->getNick(), $nick))
{
    \DB::table('users')
        ->where('steamid64', $steamID)
        ->update([
            'username' => $steamInfo->getNick(),
            'avatar'   => $steamInfo->getProfilePictureFull()
    ]);
}

Тут: $nick - массив ненужных слов.

Что получается?
Аватара пользователя
Scorpion
Сообщения: 35
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: Фильтр ненужных слов на PHP

Сообщение Scorpion » Чт май 12, 2016 7:15 am

Domeenor, что за движок? Где его можно скачать?
Я скачаю, посмотрю, как там реализован запрос на удаление и постараюсь написать Вам код, как надо это делать.

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость