Similar_text — сравнение строк / целых

это мой первый пост здесь, так что приветствую всех!

Я пытаюсь написать правило, чтобы просто защитить свой сайт от затопления пользователями, размещающими его контент. Я решил использовать similar_text () функция в PHP для сравнения строк (последняя добавленная строка пользователем и та, которую добавляется в данный момент), вычисление сходства (%) и, если результат слишком высокий (аналог более 90%), скрипт не добавит запись в базу данных.

Вот что у меня есть:

similar_text($last_record, $new_record, $sim);
$similarity = (int) number_format($sim, 0);

if ($similarity < 90)
{
// add the record
}
else
{
// dont add anything
}

Проблема с этим: если ($ сходство < 90). Я форматирую число, а затем преобразовываю его из строкового значения в int, но сценарию все равно.

Когда я использую квоты, это работает: если ($ сходство < «90»). Вопрос в том, почему скрипт не работает, когда я использую значение как целочисленное значение, и он работает, когда я использую его как строку?

2

Решение

number_format возвращает строку, где вам нужно int. Таким образом, сравнение строк до «90» работает, но сравнение int не удается. Ты можешь использовать int_val преобразовать в int.

Кроме того, мне интересно, может быть, у вас что-то не так? Я взял ваш пример кода и запустил его локально, и, кажется, он работает нормально даже без замены (int) за int_val,

Со следующими значениями:

$last_record = "asdfasdfasdf";
$new_record = "aasdfasdfasdf";

$similarity является 96 и больше, чем секция триггеров if.

С этими значениями:

$last_record = "asdfasdfasdf";
$new_record = "fffdfasdfasdf";

$similarity является 80 и меньше, чем секция триггеров if.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]