怎么在PHP中使用Redis实现书签功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
项目结构图
index.html文件
在这个页面是用来添加书籍的。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Document</title> </head> <body> <form action="add.php" method="post"> <p>请输入书名:<input type="text" name="title" /></p> <p>请输入标签:<input type="text" name="tags" /></p> <p><input type="submit" value="提交" /></p> </form> </body> </html>
add.php文件
这个文件主要处理添加书籍。
首先生成生成自增长的id,用来给书籍的id使用,然后将标签信息添加到redis中,最后使用pdo将书籍信息添加到数据库中。
<?php $redis = new Redis(); $redis->connect('localhost',6379); //生成自增长的id $bid = $redis->incr('bid'); //将标签信息添加到redis中 $tags = explode(',',trim($_POST['tags'],',')); foreach($tags as $t){ $redis->sAdd($t,$bid); } //使用pdo将书籍信息添加到数据库中 $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','1234'); $pdo->query('set names utf8'); $sql = 'insert into book values(?,?)'; $st = $pdo->prepare($sql); $line = $st->execute([$bid,$_POST['title']]); if($line != 0){ echo '添加书籍成功'; }
search.php文件
这个文件主要处理搜索界面,也就是上面效果图的界面。首先创建一个redis对象并进行连接,然后获取地址栏的标签,然后将标签转换为数组,计算出用户输入标签的数量,因为每个标签都对应redis中的集合,所以给这几个集合取交集就可以了。
<?php $redis = new Redis(); $redis->connect('localhost',6379); $tags = explode(',',trim($_GET['tags'],',')); $len = count($tags); if($len == 1){ var_dump($redis->sMembers($tags[0])); }else if($len == 2){ var_dump($redis->sInter($tags[0],$tags[1])); }else if($len == 3){ var_dump($redis->sInter($tags[0],$tags[1],$tags[2])); }
关于怎么在PHP中使用Redis实现书签功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。