Как реализовать алгоритм грубой силы для сопоставления строк в PHP?

У меня есть 2 таблицы и схемы такие:

tb_keywords

id_keyword
keyword

tb_post

id_post
description

Я хочу реализовать алгоритм грубой силы для соответствия жала в php. Если описание подходит / похоже с ключевым словом, то это описание будет вставлено в tb_post. Я пытался сделать эту работу, но она не работает.
Там нет сообщения об ошибке, просто дал пустой результат.

HTML

 <textarea type="text" class="form-control" name="description" id="description" placeholder="Description" required /></textarea>

PHP

$description = trim($_POST['description']);
$check = $db_con->prepare("SELECT * FROM  tb_keywords");
$check->execute();
$row=$check->fetch(PDO::FETCH_OBJ);
$positive = $row->keyword;

function brute_force($positive, $description)
{
$n = strlen($description);
$m = strlen($positive);
for ($i = 0; i < $n-$m; $i++) {
$j = 0;
while ($j < $m && $description[$i+$j] == $positive[$j]) {
$j++;
}
if ($j == $m) {
return $i;
}
return -1;
}
$find[$i]=brute_force($positive, $description);
$create=$db_con->prepare("INSERT INTO tb_post(description) VALUES(:description)");
$create->bindParam(":description", $description);
$create->execute();
$row=$create->rowCount();
if($row>0) {
echo "success";
} else {
echo "fail";
}

}

0

Решение

Чтобы увидеть, находится ли конкретное слово в тексте, вы можете использовать регулярное выражение с границами слова.

т.е.

preg_match («/ \ bPHP \ b /», «regex in PHP») # соответствует слову «PHP» в
строка

$description = trim($_POST['description']);
$check = $db_con->prepare("SELECT * FROM  tb_keywords");
$check->execute();
while($row = $check->fetch(PDO::FETCH_ASSOC)) {
$search = $row['keyword'];
if (preg_match("/\b$search\b/", $description)) {
$create=$db_con->prepare("INSERT INTO tb_post(description) VALUES(:description)");
$create->bindParam(":description", $description);
$create->execute();
$row=$create->rowCount();
if($row>0) {
echo "success";
} else {
echo "fail";
}
}
}
0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector