我正在建立一个网站,我们需要的一件事是让用户感兴趣,向他们展示最好的内容。用户的兴趣存储在一个表格'用户'在领域的兴趣'。
现在,文章被标记有不同的兴趣,并且显示了符合用户兴趣的文章。文章保存在标记表中。所以我们得到所有文章的标签,然后选择用户的兴趣。如果在文章中找到兴趣,那么代码回应为真,否则它会回复错误。
$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看起来像这样。
答案 0 :(得分:2)
函数strpos
返回针存在于相对于haystack字符串开头的位置。否则,如果没有找到针,则为FALSE:
if ($pos!==false) {
echo "Result:true<br>";
} else {
echo "Result:false<br>";
}
答案 1 :(得分:0)
使用stripos()
stripos()
函数查找第一次出现的字符串在另一个字符串中的位置。
返回第一次出现在另一个字符串中的字符串的位置,如果找不到该字符串,则返回FALSE。注意:字符串位置从0开始,而不是1。
注意:stripos()函数不区分大小写。
如果条件应该是这样的
if ($pos!==false) {
..............
} else {
..............
}