本文目录一览:
- 1、PHP与MYSQL实现搜索功能
- 2、php怎么生成sitemap.xml
- 3、php中怎样通过输入课程名称,点击查询,搜索所选课程的所有学生成绩信息,并存放到表格中!
- 4、php怎么做一个智能搜索呀?
- 5、PHP 如何搜索一个字符串中是否包邮姓名
PHP与MYSQL实现搜索功能
算了。估计这次回答没分。
跟你聊聊所谓的智能搜索吧。
不用 like 实现你说的智能一些的搜索。首先你得做一套分词系统。就是把你那一句话分成若干个词。
比如“你是个非常牛逼的二傻子”这句话。你不能把“你是个”当成一个词吧。 智能一点的分词应该是把“你、非常、牛逼、傻子”分出来。
然后就开始涉及到一个权重问题了。就是 你分出来的这些词 到底你希望哪些符合条件的结果排在签名。很明显上面那句话 傻子的权重要高一些。其次是牛逼。。。
然后 根据权重结果匹配呈现出结果来。。。
基本上 搜索引擎都是这么干的。 分词---数据查询----权重排序----结果呈现。。。。
php怎么生成sitemap.xml
/**
* 生成站点地图
*/
class sitemap{
private $sitemapFile = array();
private $oldxml = null;
private $newxml = null;
public $error = null;
public function __construct($sitemapFile) {
$this-sitemapFile = $sitemapFile;
if(is_file($this-sitemapFile)) {
$data = file_get_contents($this-sitemapFile);
if($data) {
$this-oldxml = new SimpleXMLElement($data);
}else{
$this-error = '读取站点地图文件失败';
}
}else{
$this-oldxml = $this-createEmptySitemap();
}
$this-newxml = $this-createEmptySitemap();
}
public function createEmptySitemap() {
$str = '?xml version="1.0" encoding="UTF-8"?';
$str .= 'urlset xmlns="" xmlns:xsi="" xsi:schemaLocation=" " /urlset';
return new SimpleXMLElement($str);
}
public function addChilds($urlArr) {
$urlArr = (array) $urlArr;
foreach($urlArr as $url) {
$priority = 0.5;
$lastmod = date('Y-m-d');
$changefreq = 'weekly';
if(stripos($url,'.html')) {
$priority = 1;
$changefreq = 'monthly';
}
if($oldXmlUrl = $this-findOldXmlUrl($url)) {
$priority = $oldXmlUrl-priority;
$lastmod = $oldXmlUrl-lastmod;
$changefreq = $oldXmlUrl-changefreq;
}
$rating = $this-newxml-addChild('url');
$rating-addChild('loc',$url);
$rating-addChild('priority',$priority);
$rating-addChild('lastmod',$lastmod);
$rating-addChild('changefreq',$changefreq);
}
}
public function findOldXmlUrl($url) {
$oldXmlUrl = '';
foreach($this-oldxml-url as $key=$xmlUrl) {
if($xmlUrl-loc == $url) {
$oldXmlUrl = $xmlUrl;
unset($this-oldxml-url[$key]);
break;
}
}
return $oldXmlUrl;
}
public function save() {
$data = $this-newxml-asXML();
if(file_put_contents($this-sitemapFile,$data) === false) {
$this-error = '写入站点地图数据失败';
return false;
}
return true;
}
}
上面这个是我个人博客生成站点地图用的类。
客户端调用代码如下:
$sitemapFile = 'Sitemap.xml';
$sitemap = new sitemap($sitemapFile);
if($sitemap-error) {
die($sitemap-error);
}
$newUrl = [
''
];
$sitemap-addChilds();
if(!$sitemap-save()) {
die($sitemap-error);
}
关键的问题是,你如何得到整站的url呢?
我个人博客的解决方法是写了个蜘蛛程序爬出来的。
php中怎样通过输入课程名称,点击查询,搜索所选课程的所有学生成绩信息,并存放到表格中!
首先,你用的数据库,起码要把你的数据库表贴出来吧,不然我们怎么给你具体的语句呢,智能猜测你的表
猜测数据课程名称字段 classname 然后拿到这个课程的所有学生成绩信息
如果要一条语句出来就是连表了
假设你一个学生信息表 stuInfo,一个课程表 class,一个成绩表 score
那么就是更具课程名字拿到课程id,然后再成绩表中拿到这个课程id的所有信息,然后再根据score表的uid拿到学生名字等信息
我只能写个推测的写法
select stuInfo.name,class.classname,score.score
from score
left join class on score.class_id = class.id
left join stuInfo on score.uid = stuInfo.id
where class.classname = "查询框拿到的课程名字"
如果你不用联表查
那就先课程表查询出class_id 然后成绩表拿到这个class_id 的所有数据 当然要用户信息可能要连个表,我就不写了
php怎么做一个智能搜索呀?
首先你要有个词库,然后将输入的内容拆分,然后再全文检索。技术不难,难就难在如果收集这个词库
PHP 如何搜索一个字符串中是否包邮姓名
你只能搜索确定的字符串,或者正则对象
可以通过preg_match()函数来搜索。
但如果你连正则也不能给出,要像人一样去理解哪些是“姓名”,那只能用人工智能了。