我正在制作一个网站,我们需要的一件事就是让用户的兴趣向他们展示最佳内容。用户的兴趣存储在“兴趣”字段的“用户”表中。strpos无法正常工作
现在,文章被标记为不同的兴趣,并显示一个符合用户兴趣的文章。文章保存在标签表中。所以我们得到所有文章的标签,然后选择用户的兴趣。如果在文章中发现兴趣,那么代码就会反映真实,否则它会回应错误。
$select = "SELECT * from users where username='$username'";
$query = mysqli_query($dbc, $select) or die(mysqli_error($dbc));
while ($result = mysqli_fetch_array($query)) {
$interests = explode(",",$result['interests'],40);
foreach($interests as $interest) {
$select1 = "SELECT * from tagged";
$query1 = mysqli_query($dbc, $select1) or die(mysqli_error($dbc));
while ($result1 = mysqli_fetch_array($query1)) {
echo "Interests:".$interest."<br>";
echo "Tags:".$result1['tags']."<br>";
$pos = strpos($result1['tags'], $interest);
if ($pos===true) {
echo "Result:true<br>";
} else {
echo "Result:false<br>";
}
}
}
}
利益名单实际上是用逗号分隔的,所以我解压缩它,它爆炸到一个数组,然后找到数组元素的文章标签使用strpos()
功能的位置。但所有结果都显示为true
,即使它们是false
。
The result看起来像这样。
是否'strpos()''回报TRUE'?仔细阅读手册。 – Raptor
它不会返回true.But它会返回false.Nd,如果我将其逆转。我将变为true。不是那样吗? –
Strpos返回字符串匹配的起始位置通常为0的字符数。使用$ pos!== false相当于$ pos not 0 ...意思找不到。 –