zoukankan      html  css  js  c++  java
  • 随笔杂谈

    你应该了解下人人的路由


    web/index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=goods.edit&id=221&tab=basic
    web/index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=goods.edit&id=199&goodsfrom=sale

    web/index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=goods.add

    web目录

    类是goods 方法是edit

    r代表类根方法么

    r参数能直接解析到具体方法


    c代表site.php

    模块入口

    m很简单模块么module

    do和id等等类似,可以认为是一个参数


    D:xiangmuc8848_wxaddonsewei_shopv2corewebgoods


    echo dirname(__FILE__) . '/post.php';die;
    D:xiangmuc8848_wxaddonsewei_shopv2corewebgoods/post.php


    sphinx笔记


    下载中文版coreseek包
    1:解压后,将etc下的mysql。conf文件复制一份放到上级目录下,改名为sphinx。conf
    2:配置文件:
    2.1:source配置数据源
    source goods

    你要为那些数据建索引,比如,为php39数据库中的p39—goods表为数据源
    sql_db = php39

    sql_query 主查询,为那些数据建索引,就用一条语句他她们取出来 例如:select id, name,title from table 为这三个字段减索引
    知识点:group_concat() mysql函数

    测试语句:SELECT group_concat(town) FROM `players` group by town
    结果去查找town中去查找哪些值是一样的,如果相等,就全部列出来,以逗号分割进行列出,如下:


    2.2:index 索引文件


    一个数据源对应一个index
    定义索引文件

    index goods
    {
    source = goods
    生成的索引文件存放的目录注意,最后的goods是文件名叫goods 不是goods目录下
    path = c:****goods

    }
    2.3:数据库配置


    创建索引:


    配置完成后,打开cmd 进入bin下降indexer。exe拉近cmd里来

    *****。exe -c ****sphinx.conf(这里是配置的那个路径) goods -》 指的是哪一个数据源
    回车就行,到此这个索引就建完了


    安装并启动sphinx服务器
    打开cmd 使用bin文件夹下的serchd。exe命令 拖入cmd中去

    *** -c 配置的路径***sphinx.conf --install


    安装服务窗口中找到sphinx并启动

    安装玩的那个窗口中输入services.msc即可

    在本地服务窗口中可找到searchd这个服务,说明启动成功


    项目中使用这个sphinx查询

    A:将sphinx.api.php复制进项目中---放到根目录下就行
    B:在控制器中使用php操作他

    function keyserch(){

    $key = I($key);

    require('./sphinxapi.php');引入这个类文件,他是用来操作sphinx的类文件,调用它里面的方法用就行,不会的百度sphinxapi里的方法,手册有介绍

    $sph = new sphinxclient();
    $sph = setserver('localhost',9312);连接服务器9312 是sphx的固定端口
    $sph = query($key,goods);第一个参数是查询那个关键字,第二个参数是从那个索引文件里查询搜索,{ 指的是索引的名字 },这里是只index goods这里定义的这个


    在牛逼一点的功能:

    实时索引更新:个人理解 主索引+临时索引(增量索引) 来实现类似于实时更新的效果,原理是,为新数据生成个小的临时的索引文件,然后将索引文件合并到主索引文件中去

    a:先给他建一个主索引,从这些索引文件中,查询出一个最大的商品id来 新建一个数据表,将这个最大的商品的id update存到这个表中

    b:然后每次新添加的商品,因为不会自动建立索引,所以他们的id不会再索引文件中,他们的商品的id肯定比索引中的保存的最大的商品id要大

    c: 然后给新添加的商品新建一个索引,按照上述方法,source goods数据源复制一份,改为 source goods_new 作为新索引数据源
    index goods索引文件复制一份,改为index goods_new 作为新索引的名字

    然后合并主索引


    修改sphx配置文件:新建一个数据表叫spinx_xin 字段为id

    source goods
    {
    type=**
    ****
    sql_query = select *****from p39_goods 建立的索引文件,此时为主索引

    # 在创建好索引后吧最后一个商品的id更新到新建的表中:
    $sql_query_post = update spinx_xin set id= (select max(id) from p39_goods )

    }

    测试一下:重新创建一下索引即可看到效果 注意:重建索引需在本地服务中心关闭search的这个sphinx服务 然后执行services.msc在启动 然后输入建立索引命令即可

    新建索引不关闭服务器也行,在建索引命令后面加上 --rotate这个命令即可
    执行完命令后就把id更新到表中了

    注意:这里只是把索引的文件的商品id更新到了新表中,新的商品还没有索引
    接下来就是给新商品新建索引,然后把它每过一段时间,合并到主索引中
    复制source goods 为goods_new

    修改索引的sql语句

    source goods_new
    {

    ******
    ****
    *****
    新商品id肯定大于索引中最大的商品的id,
    因为已将最大的id存在spinx_xin 新表的id中
    只要比较商品表中比这个新表的id大的就是新商品

    修改sql语句,目的是查询出新商品,然后给新商品建索引
    sql_query = select id ****from p39_goods where id>(select id from spinx_xin )
    ******
    }
    同理新建了一个数据源就得新建一个index索引文件

    复制一份index goods 索引文件在做相应的修改,新的索引就好了


    写一个脚本,bat文件,目的有两个,
    先给增量数据生成索引文件
    把新生成的索引文件合并到主索引中


    bat中写入建立索引的语句:

    1:建立新的索引文件
    ****index.exe -c ***sphinx.conf(路径) goods_new
    2:合并索引新索引文件到主索引文件中
    ****indexer.exe -c ***sphinx.conf --merge goods goods_new --rotate (这里别忘了写rotate相当于,自动关闭sghinx服务器建索引自动打开,上文有提到)


    然后执行脚本文件

    但是每次添加商品手动执行这个脚本更新索引,太麻烦了,所以还要配置一下这个脚本,让他自动每五分钟执行一次

    window:管理工具--任务计划 设置五分钟自动执行脚本
    linux:crond进程


    柠檬

    三毛从军记

    http://www.11ml.cn/about/
    http://www.10100.com.cn/
    http://www.aykj.net/
    https://www.5iec.com/


    http://www.yongsy.com/about.html
    http://www.east.com.cn/Site/Default/index.shtml
    http://www.songyi.net/

    https://www.sanways.com/#page1
    http://www.w-e.cc/#3

    http://www.shiwangyun.com/ -----


    http://www.zimukeji.com/
    http://www.itstarcom.com/about/
    http://www.heyou51.com/

    http://www.kuailegezi.com/app.html http://www.tkmlm.com/ http://www.zhixiaodashi.com/ http://www.999rj.com/ http://www.kqcra.com/ http://zxw.wangqi.com/fuwu/

    http://www.xwtsoft.com/ http://www.hrkji.com/Index.aspx http://www.cnw6.com/cnw6/demo/


    yongshaming
    yongshaming55


    http://me.cztv.com/video-2722708.html

    成功就是发现,复制
    郑云工作室

    模仿别人是怎样成功的
    比如认真研究腾腾怎样做到提高学习效率,成为高手的,发现她的规则总结一下拿过来用,他做的那些东西是很有效的

    http://www.imooc.com/learn/163
    http://www.maiziedu.com/course/677/
    https://v.qq.com/x/cover/zpd4cvvq803nmdz/h03936jwm0k.html?pgv_ref=aio2015&ptlang=2052&pgv_ref=aio2015&ptlang=2052


    * 作用:array转xml
    */
    function arrayToXml($arr)
    $xml = "<xml>";
    foreach ($arr as $key=>$val)
    {
    if (is_numeric($val))
    {
    $xml.="<".$key.">".$val."</".$key.">";
    }
    else
    $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
    }
    $xml.="</xml>";
    return $xml;

    * 作用:将xml转为array
    */
    function xmlToArray($xml)
    {
    //将XML转为array
    $array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
    return $array_data;
    }


    我在网上找到一个留言邮件提醒的插件,自己修改了一下,结合到PHPMYWIND,本人不是学PHP的,不知道这样实现合不合理,但是可以正常收到客户留言的邮件。高手可以指教一下,不喜勿喷。谢谢!

    首先把附件phpmailer.rar下载并把文件夹解压到网站根目录。

    接着新建一个PHP文档,mail.php
    复制以下代码到mail.php
    本帖隐藏的内容

    <?php require_once(dirname(__FILE__).'/include/config.inc.php');


    //留言内容处理
    if(isset($action) and $action=='add')
    {
    if(empty($nickname) or
    empty($content))
    {
    header('location:message.php');
    exit();
    }


    $r = $dosql->GetOne("SELECT Max(orderid) AS orderid FROM `#@__message`");
    $orderid = (empty($r['orderid']) ? 1 : ($r['orderid'] + 1));
    $nickname = htmlspecialchars($nickname);
    $contact = htmlspecialchars($contact);
    $content = htmlspecialchars($content);
    $posttime = GetMkTime(time());
    $ip = gethostbyname($_SERVER['REMOTE_ADDR']);


    $sql = "INSERT INTO `#@__message` (siteid, nickname, contact, content, orderid, posttime, htop, rtop, checkinfo, ip) VALUES (1, '$nickname', '$contact', '$content', '$orderid', '$posttime', '', '', 'false', '$ip')";
    if($dosql->ExecNoneQuery($sql))
    {
    ShowMsg('留言成功,感谢您的支持!','message.php');
    }
    }
    require("phpmailer/class.phpmailer.php");
    error_reporting(E_ERROR);
    function smtp_mail ( $sendto_email, $subject, $body ,$att=array()) {
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->Host = "smtp.qq.com"; //smtp服务器
    $mail->Username = "123@qq.com"; //发送邮件账号
    $mail->Password = "123"; //发信邮件密码
    $mail->FromName = "管理员"; //发件人姓名
    $mail->SMTPAuth = true;
    $mail->From = $mail->Username;
    $mail->CharSet = "utf-8";
    $mail->Encoding = "base64";
    $mail->AddAddress($sendto_email);
    $mail->IsHTML(true);
    $mail->Subject = $subject;
    $mail->Body = $body;
    if(!$mail->Send()) {
    echo "邮件错误信息: " . $mail->ErrorInfo;
    }else{
    ShowMsg('邮件发送成功!谢谢您的支持!','message.php'); //发信成功显示
    }
    }
    $content=$_POST["content"];
    $body = $content; //获取邮件内容
    // 参数说明(发送地址, 邮件主题, 邮件内容)
    smtp_mail('234@qq.com', '请查看留言', $body);
    ?>

    查找message.php代码删除以下代码,因为我一把这段代码复制到了mail.php

    //留言内容处理
    if(isset($action) and $action=='add')
    {
    if(empty($nickname) or
    empty($content))
    {
    header('location:message.php');
    exit();
    }


    $r = $dosql->GetOne("SELECT Max(orderid) AS orderid FROM `#@__message`");
    $orderid = (empty($r['orderid']) ? 1 : ($r['orderid'] + 1));
    $nickname = htmlspecialchars($nickname);
    $contact = htmlspecialchars($contact);
    $content = htmlspecialchars($content);
    $posttime = GetMkTime(time());
    $ip = gethostbyname($_SERVER['REMOTE_ADDR']);


    $sql = "INSERT INTO `#@__message` (siteid, nickname, contact, content, orderid, posttime, htop, rtop, checkinfo, ip) VALUES (1, '$nickname', '$contact', '$content', '$orderid', '$posttime', '', '', 'false', '$ip')";
    if($dosql->ExecNoneQuery($sql))
    {
    ShowMsg('留言成功,感谢您的支持!','message.php');
    exit();
    }
    }

    查找message.php代码把以下代码的action=""修改为action="mail.php"。其他不用改动。
    <form name="form" id="form" method="post" action="mail.php">
    <span class="msgtitle">联系方式:</span><input name="contact" type="text" id="contact" class="msg_input" /><div class="hr_10"></div><div class="hr_10"></div>
    <span class="msgtitle">内  容:</span><textarea name="content" class="msg_input" style="729px;height:180px;overflow:auto;" id="content" ></textarea>
    <div class="msg_btn_area"> <a href="javascript:void(0);">提 交</a></div>
    <input type="hidden" name="action" id="action" value="add" />
    <?php
    if(!empty($_COOKIE['username']))
    $nickname = AuthCode($_COOKIE['username']);
    else
    $nickname = '游客';
    ?>
    <input type="hidden" name="nickname" id="nickname" value="<?php echo $nickname; ?>" />
    </form>

  • 相关阅读:
    topcoder srm 633 div1
    HDU 4997 Biconnected (状态压缩DP)
    HDU 5013 City Tour
    BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)
    BZOJ 1488: [HNOI2009]图的同构 polay
    BZOJ 1565 植物大战僵尸(最大权闭合图)
    iOS加载程序视图的方式
    内存管理2(主讲MRR)
    内存管理1
    排序算法之希尔排序
  • 原文地址:https://www.cnblogs.com/yszr/p/7144295.html
Copyright © 2011-2022 走看看