は、私は2つのテーブルを持っており、スキームは、このようなものです:どのようにPHPで文字列照合のブルートフォースアルゴリズムを実装するには?
tb_keywords
id_keyword
keyword
tb_post
id_post
description
私はPHPで刺さマッチングのためのブルートフォースアルゴリズムを実装したいです。 descriptionがkeywordと適合/類似している場合、この説明は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";
}
}
あなたのコードがあり、いくつかの問題。 'for'-loopを続けることはなく、' for'-loopの後にコードの一部に到達することはありません。私が理解しているように、説明の中でキーワードを見つけようとする必要がありますが、[stripos()](http://php.net/manual/ru/function.stripos.php)を大文字と小文字を区別しないサーチ。 – Wizard