zoukankan      html  css  js  c++  java
  • 20150408--Sphinx+邮件激活-02

    三、使用php查询测试

    1、要拷贝sphinx的接口文件到php项目中来。

    wps8750.tmp

    具体的代码:

    wps87A0.tmp

    wps87B0.tmpwps87B1.tmpwps87C2.tmp

    wps87D2.tmpwps8831.tmpwps8832.tmp

    wps88C0.tmp

    四、查询的关键词要添加样式显示

    使用:$sc->buildExcerpts()来完成对应关键词添加样式来显示

    $sc->buildExcerpts(一条记录的数组,索引的名字,查询的关键词,关键词添加的样式)

    $sc->buildExcerpts(一条记录的数组,索引的名字,查询的关键词,array(

    ‘before_match’=>’<font color=”red”/>’,

    ‘after_match’=>’</font>’

    ))

    该函数返回的是一个索引的数组,因此在输出时要使用下标来显示

    wps893E.tmp

    五、SPHINX的匹配模型

    1、SPH_MATCH_ALL 完全匹配所有的词

    如“冬天  的   雪”,并不会匹配 “我爱冬天”,

    可以匹配 “我朋友,爱冬天,和”。

    因为“冬天的雪” 被分成 “冬天”,“的”,“雪”三个词,匹配条件是同时包含

    这三个词,“我爱冬天”里只包含一个“冬天”

    2、SPH_MATCH_ANY: 匹配任意一个词

    如“冬天   的     雪”,并会匹配 “我爱冬天”。

    "冬天的雪“ -》 ”冬天“ ”的“ ”雪“

    因为“我爱冬天”里有一个“冬天”相匹配。

    3、

    wps895E.tmp

    4、

    wps897E.tmp

    5、

    wps899F.tmp

    六、增量索引建立

    原来有1000万条记录,建立完成索引了,

    后来又添加了500条记录,

    思路:把后面添加的记录单独建立索引,建立的增量索引再合并到主索引上面。

    具体实时:

    (1)新建一张表,用于记录电影最大的id,当主索引建完之后,表里面就记录最大的id,

    (2)建立增量索引是主查询,就使用条件了。

    select id,title,description from dede_archives where id>(select max_id from a)

    wps8A3C.tmp

    步骤:

    (1)新建一张表

    create table a(max_id int);

    wps8A5C.tmp

    (2)修改主数据源

    wps8A7C.tmp

    (3)添加增量数据源

    wps8A9D.tmp

    (4)配置增量索引

    wps8ABD.tmp

    (5)重新建立主索引

    wps8B2B.tmp

    添加数据,进行建立增量索引

    wps8B3C.tmp

    (6)把增量索引合并到主索引上面

    indexer  -c配置文件  --merge  主索引的名字  增量索引的名字  --rotate(不关闭服务强制合并)

    wps8B5C.tmp

    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 '问题的答案'

    )

    完成用户注册,找回密码案例

    建表:

    wps55C2.tmp

    案例:

    register.html用户注册页面:

    action.php是处理用户注册 激活 验证 找回密码 页面

  • 相关阅读:
    delphi shr和shl的作用
    delphi socket 编程 使用多线程
    mysql 移除服务,并在cmd下切换目录
    delphi 结构体和TList的用法
    delphi 使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行。
    Unicode 和 UTF-8 的区别
    Python 模块 re (Regular Expression)
    Python的函数式编程
    反向解析与PTR(Pointer Record)
    simhash算法
  • 原文地址:https://www.cnblogs.com/lifushan/p/5471957.html
Copyright © 2011-2022 走看看