PHP+实现多个关键词搜索查询功能

PHP搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。

代码示例:

//分解用户输入的多个关键词,存入$result数组
$result = explode('','',$_GET['key']);
$mysql_server="localhost";
$mysql_username="数据库用户名";
$mysql_password="数据库密码";
$database_conn="数据库名";
//建立数据库链接
$conn = mysql_connect($mysql_server,$mysql_username,$mysql_password);
//选择某个数据库
mysql_select_db($database_conn, $conn);
//根据多个关键词构建SQL语句
$query_rs = "SELECT * FROM (";
//根据每个搜索关键词构建SQL语句
for($i=0;$i<count($result);$i++)
{
    //对第一个关键词,不使用UNION
    if($i==0)
    {
        $query_rs .= "SELECT * FROM searchtable WHERE title LIKE ''%$result[0]%''OR content LIKE ''%$result[0]%''";
     }else{
        //对其他关键词,使用UNION连接
        $query_rs .= " UNION SELECT * FROM searchtable WHERE title LIKE''%$result[$i]%'' OR content LIKE ''%$result[$i]%''";
     }
     //对搜索结果排序
     $query_rs .= ") T ORDER BY last_access DESC";
     //执行SQL语句
     $rs = mysql_query($query_rs, $conn) or die(mysql_error());
     $row_rs = mysql_fetch_assoc($rs);
     $totalRows_rs = mysql_num_rows($rs);
}

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP实现多进程搜索文件内容可以使用 `pcntl_fork` 函数创建子进程,然后在每个子进程中进行搜索操作。 以下是一个简单的示例代码: ```php <?php $dir = '/path/to/search'; // 要搜索的目录 $keyword = 'search keyword'; // 要搜索关键词 // 创建子进程进行搜索 $search = function ($dir) use ($keyword) { $pid = pcntl_fork(); if ($pid == -1) { die('Fork failed'); } elseif ($pid) { // 父进程不做任何操作 } else { // 子进程进行搜索 $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)); foreach ($iterator as $file) { if ($file->isFile() && strpos(file_get_contents($file->getPathname()), $keyword) !== false) { echo $file->getPathname() . "\n"; } } exit(0); } }; // 遍历目录进行搜索 $dirIterator = new RecursiveDirectoryIterator($dir); foreach ($dirIterator as $fileInfo) { if ($fileInfo->isDir()) { $search($fileInfo->getPathname()); } } ``` 这个示例中,我们首先定义了一个 `$search` 函数,该函数接受一个目录路径作为参数,使用 `pcntl_fork` 函数创建子进程来进行搜索操作。在搜索操作中,我们使用 `RecursiveDirectoryIterator` 遍历目录中的所有文件,然后使用 `file_get_contents` 函数读取文件内容,查找是否包含关键词,如果包含则输出文件路径。最后使用 `exit(0)` 函数结束子进程。 在主程序中,我们使用 `RecursiveDirectoryIterator` 遍历目录,对每个子目录调用 `$search` 函数来创建子进程进行搜索。这样就能够实现多进程搜索文件内容的功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值