gpt4 book ai didi

PHP 嵌套 for 循环

转载 作者:行者123 更新时间:2023-11-30 00:38:22 28 4
gpt4 key购买 nike

我基本上想扫描大量评论中的非法单词,然后用干净的版本替换这些非法单词。

我有两个数组,一个数组包含要检查的所有注释,另一个数组包含要查找的所有非法单词。

第一个 for 循环获取注释,然后嵌套的 for 循环扫描注释中的每个非法单词并替换它们。但问题是——它实际上似乎不起作用。请问是我的循环结构有问题,还是实际的更新逻辑有问题?

    $numComments = count($commentsToCheck);
$numIllegalWords = count($illegalWords);
for($i = 0; $i <= $numComments; $i++)
{
$message = $commentsToCheck[$i]['message'];
$commentId = $commentsToCheck[$i]['id'];
//error_log($message.'-'.$commentId);

for($j = 0; $j <= $numIllegalWords; $j++)
{
//Get word to replace with
$word = $illegalWords[$j]['word'];
//error_log($word);

$length = strlen($word);
$first = substr($word,0);
$last = substr($word,-1);
$starLength = $length - 2;
$replacement = $first.str_repeat('*',$starLength).$last;

$newMessage = preg_replace('/\b'.$word.'\b/i', $replacement, $message);

//Update the comment
$sql = "UPDATE ow_base_comment SET message = $newMessage WHERE id = $commentId LIMIT 1";
OW::getDbo()->query($sql);
}
}

最佳答案

您的查询不应该是我在下面放置的查询吗,因为它现在看不到查询中的实际变量。从技术上讲,它不会更新任何内容,因为没有实际的变量集。

  $sql = "UPDATE ow_base_comment SET message = '".$newMessage."' WHERE id = '".$commentId."' LIMIT 1";

忘记 PHP 中的引号是一个常见错误。

关于PHP 嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21985950/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com