第十八节:php实现搜索功能

PHP零基础入门

php实现搜索功能:整个搜索功能用php的JSON数据实现,json字符串可以访问查询。搜索是许多应用程序常见功能,词汇表项目实现搜索功能,在这个过程中,我将教你PHP中的真实性和虚假性。

php实现搜索功能

创建4.5_truthiness_and_adding_a_search文件夹,把上节课《PHP创建动态详情页》代码复制粘贴到本节课使用。

第一步:index.view.php添加表单

刷新我们会看到搜索表单。

第二步:编写index.php控制器代码

如果search设置,就输出$items的值,否则就显示get_terms的数据,把$items传递到view函数。

第三步:file_function.php文件

分析get_term()函数,就是循环所有的数组中的项目,如果是term是匹配就返回整个$item,所以get_term仅仅返回单一项目。

第四步:创建search_terms函数

第一种方法:array_map

代码解释:

  1. array_map;
  2. 除了 $items回调函数,并在我们的数组中的每个项目上执行该函数;
  3. 如果$items有三个项目,$results也就是3个items。

第二种方法:array_filter

对比解释:

array_filter(arr,fn)

array_map(fn, arr)

要记住他们参数和数组的之间的顺序。

第五步:使用Strpos匹配搜索条件

代码解释:

  1. array_filter
  2. 首先把$items的数组传递进来,接着就是函数
  3. 在函数里面我开始执行搜索
  4. 看hello, world的字符串,和字符串只不过是数组字符
  5. 可以把每个字母都想象成数组中的一个项目,所以H就是位置0
  6. Strpos(‘hello,world’,’ello’)-strpos(haystack, needle)匹配搜索条件
    1. strpos是字符串位置的php内置函数
    2. hello,world作为字符串
    3. ello作为针
  7. 返回我们为搜索词找到针的匹配位置;
  8. 返回位置1,因为ELLO的E位于第一位。

如果我们搜索he,strpos(‘hello, world’, ‘he’);将要返回位置0,因为he的h是在第一位,所以就是0。如果我们搜索Z,strpos(‘hello, world’, ‘z’);将返回false,因为字符hello,world没有z。

第六步:实现search_terms函数

用truthy和falsey解决空白问题

在search输入点击提交,页面显示空白,问题所在我们使用条件会有truthy和falsey

truthy

数字:1、12345、-1都可以叫truthy
字符串:’adfadsfdas’ 可以叫truthy

浏览器输出asfg字符串

空字符串

显示空白

显示空白

我们有css,我们搜索查询是c,c位置0,0是falsey值,可以这么理解:

改为

false不等于false,肯定是错误,所以下面输出就不会执行了。同理:strpos($item->term,$search) != false 也不会执行了。

让0不等于false代码执行,使用===等于号:

  1. 这个0===false例子,他们是不等于的,这个条件是fasle
  2. 如果0!==false例子,他们是不等于的,这个条件是true

因为0的值是完全不等于false的,这个例子我们需要做的是比较,不是等于,0与false比较是不相同的,所以需要用==比较运算符

因为strpos函数会返回位置有可能是0,负数(-1,-2,-3……),0和负数是同样的东西,我们需要用到绝对严格检查,使字符串位置返回的不是非。

definition也包括在搜索条件

把heading也包含到搜索条件

第一步:index.php编写代码

第二步:index.view.php编写代码

下载本节《php实现搜索功能》完整代码

接近10年的互联网从业经验,精通Scrum敏捷软件开发的方法,从事互联网产品设计,开发,测试,运营,案例不少于20个,发现自己最喜欢的工作是做外贸营销,外贸SEO,特别喜欢谷歌优化。从2017年3月开始坚持在群161510483直播谷歌SEO和WEB前端开发技术,只要加进来坚持学习零基础也能够学会。

Last modified: 2019年4月16日

Previous Story

PHP零基础入门

第十九节: PHP路径管理

PHP路径:经常被PHP的绝对路径和相对路径弄的晕头转向,尤其是相对路径,在PHP应用程序中很难使用.php获取当前路径或目录可以使用__FILE__魔术变量,__DIR__魔术变量来实现.

...

Next Story

PHP零基础入门

第十七节:PHP创建动态详情页

动态详情页:通过PHP实现动态详情页,把内容动态加载显示在网页上,例如内容列表中点击一个文章标题就跳转到这篇文章的详情页,这是使用动态页面技术实现的后端使用PHP处理.

...