我一直在研究一个非常基本的搜索引擎。它基本上通过检查单词是否存在来操作。如果是,则返回链接。我知道大多数人会建议从phpMyAdmin创建一个数据库,但我不记得使mySql_Connect
命令工作的密码。
无论如何这里是代码:
<?php
session_start();
$searchInput = $_POST['search'];
var_dump($inputPage1);
var_dump($searchİnput);
$inputPage1 = $_SESSION['pOneText'];
$inputPage2 = isset($_SESSION['pTwoText']) ? $_SESSION['pTwoText'] : "";
$inputPage3 = isset($_SESSION['pThreeText']) ? $_SESSION['pThreeText'] : "";
if (strpos($inputPage1, $searchInput)) {
echo "True";
} else {
echo "False";
}
?>
当我搜索一个单词,来自任何页面的任何单词,天气存在或不存在时,它总是返回false。有谁知道为什么?
答案 0 :(得分:1)
来自PHP documentation:
警告:此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE。有关更多信息,请阅读有关布尔值的部分。使用===运算符测试此函数的返回值。
所以函数返回整数0
,因为$searchInput
从$inputPage1
的第一个字符开始。因为它在if条件中,所需的布尔值,然后整数转换为1。转换为布尔值时,零等于false,因此执行else块。
要解决此问题,您需要使用!==
运算符(不等于===
):
if (strpos($inputPage1, $searchInput) !== false) {
//...
答案 1 :(得分:0)
尝试使用str i pos()来匹配不区分大小写的
答案 2 :(得分:-1)
首先使用
打印$ _POST和$ _SESSION中的所有项目echo "<pre>";
print_r($_POST);
print_r($_SESSION);
并确保搜索字符串确实存在于更大的字符串中。 还要确保你正在使用&#34; false&#34;比较 : 即
$pos = strpos($biggerString,$seachString);
if($pos !== false)
{
echo "Not found";
}