三、使用php查询测试
1、要拷贝sphinx的接口文件到php项目中来。
具体的代码:
四、查询的关键词要添加样式显示
使用:$sc->buildExcerpts()来完成对应关键词添加样式来显示
$sc->buildExcerpts(一条记录的数组,索引的名字,查询的关键词,关键词添加的样式)
$sc->buildExcerpts(一条记录的数组,索引的名字,查询的关键词,array(
‘before_match’=>’<font color=”red”/>’,
‘after_match’=>’</font>’
))
该函数返回的是一个索引的数组,因此在输出时要使用下标来显示
五、SPHINX的匹配模型
1、SPH_MATCH_ALL 完全匹配所有的词
如“冬天 的 雪”,并不会匹配 “我爱冬天”,
但可以匹配 “我的朋友,爱冬天,和雪”。
因为“冬天的雪” 被分成 “冬天”,“的”,“雪”三个词,匹配条件是同时包含
这三个词,“我爱冬天”里只包含一个“冬天”
2、SPH_MATCH_ANY: 匹配任意一个词
如“冬天 的 雪”,并会匹配 “我爱冬天”。
"冬天的雪“ -》 ”冬天“ ”的“ ”雪“
因为“我爱冬天”里有一个“冬天”相匹配。
3、
4、
5、
六、增量索引建立
原来有1000万条记录,建立完成索引了,
后来又添加了500条记录,
思路:把后面添加的记录单独建立索引,建立的增量索引再合并到主索引上面。
具体实时:
(1)新建一张表,用于记录电影最大的id,当主索引建完之后,表里面就记录最大的id,
(2)建立增量索引是主查询,就使用条件了。
select id,title,description from dede_archives where id>(select max_id from a)
步骤:
(1)新建一张表
create table a(max_id int);
(2)修改主数据源
(3)添加增量数据源
(4)配置增量索引
(5)重新建立主索引
添加数据,进行建立增量索引
(6)把增量索引合并到主索引上面
indexer -c配置文件 --merge 主索引的名字 增量索引的名字 --rotate(不关闭服务强制合并)
PHP如何发邮件?
知识点:邮件相关的协议:
smtp:发邮件,端口:25
pop3:收邮件,端口:110
1、要有邮件服务器
a) 自己搭建一个邮箱服务器
b) 使用现有的:126、163等等。
163发邮件的接口:smtp.163.com
2、在163注册一个邮箱账号
在php中发送邮件使用一个 phpmailer的类。
phpmailer发送邮件示例
注意事项:
启用fsockopen函数
首先,在php.ini中去掉下面的两个分号
复制代码 代码示例:
;extension=php_sockets.dll
;extension=php_openssl.dll
代码案例:
<?php
require 'PHPMailer/class.phpmailer.php';
$mail = new PHPMailer();
/*服务器相关信息*/
$mail->IsSMTP(); //设置使用SMTP服务器发送
$mail->SMTPAuth = true; //开启SMTP认证
$mail->Host = 'smtp.163.com'; //设置 SMTP 服务器,自己注册邮箱服务器地址
$mail->Username = 'phpdaxia001'; //发信人的邮箱名称
$mail->Password = 'php1234'; //发信人的邮箱密码
/*内容信息*/
$mail->IsHTML(true); //指定邮件格式为:html
$mail->CharSet ="UTF-8"; //编码
$mail->From = 'phpdaxia001@163.com'; //发件人完整的邮箱名称
$mail->FromName = '地球球长委员会'; //发信人署名
$mail->Subject = "地球的球长选举"; //信的标题
$mail->MsgHTML("尊敬的用户:明天开会,会后,我请客"); //发信主体内容
/*发送邮件*/
$mail->AddAddress("phpdaxia001@163.com"); //收件人地址
//使用send函数进行发送
if($mail->Send()) {
echo 'ok ok';
} else {
echo $mail->ErrorInfo;//如果发送失败,则返回错误提示
}
完成用户注册完成后,要通过邮箱验证。如果用户密码忘了,可以通过邮箱找回密码
create table user(
id int primary key auto_increment,
username varchar(32) not null comment '用户的名称',
password char(32) not null comment '用户的密码',
active tinyint not null default 0 comment '激活的标志,0表示没有激活,1表示已经激活',
validate varchar(32) not null comment '激活的用户的校验码',
question varchar(32) not null comment '问题的名称',
answer varchar(32) not null comment '问题的答案'
)
完成用户注册,找回密码案例
建表:
案例:
register.html用户注册页面:
action.php是处理用户注册 激活 验证 找回密码 页面