match

Websocket协议之php实现

◇◆丶佛笑我妖孽 提交于 2020-03-27 21:57:18
前面学习了HTML5中websocket的握手协议、打开和关闭连接等基础内容,最近用php实现了与浏览器websocket的双向通信。在学习概念的时候觉得看懂了的内容,真正在实践过程中还是会遇到各种问题,网上也有一些关于php的websocket的实现,但是只有自己亲手写过之后才知道其中的感受。其中,google有一个开源的phpwebsocket类( https://code.google.com/p/phpwebsocket/ ),但是从其握手过程中可以明显看出,这还是最初的websocket协议,请求头中使用了两个KEY,并非version 13(现行版本)。下面是本人实践过程,同时封装好了一个现行版本的php实现的实用的websocket类。 一、握手 1、客户端发送请求 websocket协议提供给javascript的API就是特别简洁易用。 View Code 先看效果,客户端和服务器端握手的结果如下: 2、服务器端 封装的类为WebSocket,address和port为类的属性。 (1)建立socket并监听 1 function createSocket() 2 { 3 $this->master=socket_create(AF_INET, SOCK_STREAM, SOL_TCP) 4 or die("socket_create() failed:"

Elasticsearch系列---多字段搜索

偶尔善良 提交于 2020-03-27 00:41:24
概要 本篇介绍一下multi_match的best_fields、most_fields和cross_fields三种语法的场景和简单示例。 最佳字段 bool查询采取"more-matches-is-better"匹配越多分越高的方式,所以每条match语句的评分结果会被加在一起,从而为每个文档提供最终的分数_score。能与两条语句同时匹配的文档会比只与一条语句匹配的文档得分要高,但有时这样也会带来一些与期望不符合的情况,我们举个例子: 我们以英文儿歌为案例背景,我们这样搜索: GET /music/children/_search { "query": { "bool": { "should": [ { "match": { "name": "brush mouth" }}, { "match": { "content": "you sunshine" }} ] } } } 结果响应(有删减) { "hits": { "total": 2, "max_score": 1.7672573, "hits": [ { "_id": "4", "_score": 1.7672573, "_source": { "name": "brush your teeth", "content": "When you wake up in the morning it's a quarter

jquery源码系列:append方法实现过程

荒凉一梦 提交于 2020-03-26 06:22:57
no1: // Define a local copy of jQuery var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn. init ( selector, context, rootjQuery ); //调用第二步init方法 }, no2: jQuery.fn = jQuery.prototype = { constructor: jQuery, init : function( selector, context, rootjQuery ) { var match, elem, ret, doc; // Handle $(""), $(null), or $(undefined) if ( !selector ) { return this; } // Handle $(DOMElement) if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; } // The body element only exists once,

jquery源码系列:append方法实现过程

落爺英雄遲暮 提交于 2020-03-26 05:25:23
no1: // Define a local copy of jQuery var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn. init ( selector, context, rootjQuery ); //调用第二步init方法 }, no2: jQuery.fn = jQuery.prototype = { constructor: jQuery, init : function( selector, context, rootjQuery ) { var match, elem, ret, doc; // Handle $(""), $(null), or $(undefined) if ( !selector ) { return this; } // Handle $(DOMElement) if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; } // The body element only exists once,

RYU 灭龙战 third day

♀尐吖头ヾ 提交于 2020-03-24 07:59:57
RYU 灭龙战 third day 前言 传统的交换机有自学习能力。然而你知道在SDN的世界里,脑子空空的OpenFlow交换机是如何学习的吗?今日说法带你领略SDN的mac学习能力。 RYUBook 从中学习 场景描述 传统交换机原理 学习连接到传统交换机的主机的mac地址,并把其存在mac地址表中 对于已经记录下来的mac地址,若是收到送往该mac地址的数据包时,就往对应的端口进行转发 对于mac地址表中没有的数据包,则进行flooding OpenFlow交换机实现传统交换机功能 对于接收到的数据包针对指定的端口转发 把接收到的数据包发送给控制器(Packet-In) 把从控制器接收到的数据包转发到指定的端口(Packet-Out) 图示 1.初始状态 mac地址表和交换机的流表均为空的表项 2.Host A -> Host B 当Host A 向 Host B 发送数据包时。这个时候会出发PacketIn消息。Host A的mac地址以及对应的端口会记录到mac地址表内。然后由于Host B的mac不在mac地址表内,此时会flooding 3.Host B -> Host A 数据包从host B回复给Host B时,在Flow table上新增一条流表,讲数据包转发给端口1 4.Host A -> Host B 再次由主机A向主机B发送数据包,新增流表

Android笔记(四十七) Android中的数据存储——XML(三)SAX解析

♀尐吖头ヾ 提交于 2020-03-24 06:38:06
SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。下面是一些ContentHandler接口常用的方法: startDocument() :当遇到文档的开头的时候,调用这个方法,可以在其中做一些预处理的工作。 endDocument() :和上面的方法相对应,当文档结束的时候,调用这个方法,可以在其中做一些善后的工作。 startElement(String namespaceURI, String localName, String qName, Attributes atts) :当读到一个开始标签的时候,会触发这个方法。namespaceURI就是命名空间,localName是不带命名空间前缀的标签名,qName是带命名空间前缀的标签名。通过atts可以得到所有的属性名和相应的值。要注意的是SAX中一个重要的特点就是它的流式处理,当遇到一个标签的时候,它并不会纪录下以前所碰到的标签,也就是说,在startElement()方法中,所有你所知道的信息

boost sp 2 regex语法规范 正则表达式

为君一笑 提交于 2020-03-24 04:27:06
3 月,跳不动了?>>> boost sp 2 regex语法规范 正则表达式 这部分包含了boost.regex库的正则表达式的语法。这是一份程序员指南,实际的语法由在程序中的正则表达式的选项决定。(译注:即regex类构造函数的flag参数。) 文字(Literals) 除了一下字符,其它的任何字符都表示其字面意义(literal)。 “.”, “|”, “*”, “?”, “+”, “(“, “)”, “{“, “}”, “[“, “]”, “^”, “$” 和 “\” 要使用这些字符的字面意义,要在前面使用 “\” 字符。一个字面意义的字符匹配其本身,或者匹配 traits_type::translate() 的结果,这里的traits_type 是 basic_regex 类的特性模板参数(the traits template parameter)。 通配符(Wildcard):点号 ”.” 点号 ”.” 匹配任意的单个字符。当在匹配算法中使用了 match_not_dot_null 选项,那么点号不匹配空字符(null character)。当在匹配算法中使用了 match_not_dot_newline 选项,那么点号不匹配换行字符(newline character)。 重复(Repeats) 一个重复是一个表达式(译注:正则表达式)重复任意次数。

XSLT学习二——元素下

一世执手 提交于 2020-03-24 04:02:26
上一篇 写了XSLT的根元素和顶级元素。 3、指令元素 xsl:apply-imports 元素可应用来自导入xslt中的模版规则。导入(import)XSLT中的模板规则的优先级要比主XSLT中的模板规则要低。如果要使用导入XSLT中的某条摸版规则,而不是主XSLT中的某个等价规则就会用到xsl:apply-imports元素。 xsl:apply-templates 元素可向当前元素或当前元素的子元素应用模板。如果我们向 xsl:apply-templates 元素添加 select 属性,那么它仅会处理匹配该属性的值的子元素。我们可使用 select 属性来规定处理子介点的顺序。 示例xml: <?xml version="1.0" encoding="utf-8" ?><data> <book> <title>Book1</title> </book> <book> <title>Book2</title> </book> <cd> <title>CD1</title> </cd></data> 例子1:用 h1 元素包围文档中每个 title 元素: <?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL

【原创】浅谈对<xsl:apply-templates/>的理解

て烟熏妆下的殇ゞ 提交于 2020-03-24 04:01:16
  今天下午工作完成没事,登w3c的网站学习了一下xslt的基础知识,主要是因为工作中xml用的比较多,xslt也有用到,所以在这里学习一下。   XSLT:一种用于转换 XML 文档的语言。   XSLT 用于将一种 XML 文档转换为另外一种 XML 文档,或者可被浏览器识别的其他类型的文档,比如 HTML 和 XHTML。通常,XSLT 是通过把每个 XML 元素转换为 (X)HTML 元素来完成这项工作的。XSLT 使用 XPath 在 XML 文档中查找信息。XPath 被用来通过元素和属性在 XML 文档中进行导航。   声明:<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">或<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">,还要加上xml声明。   例子: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/">

xml文件操作之XSLT

做~自己de王妃 提交于 2020-03-24 04:00:09
最近接手的一个项目中数据的获取通过数据库与xml文件双向处理,不知出入什么原因,该项目的先前设计者将数据从数据库取出后又写入到xml文件中,然后从xml文件中读取数据。由于数据量大的原因,项目中几个文件夹加载时浏览器一度崩溃,无赖只得对数据进行优化。本来sql server支持分页与排序操作,起初我打算重写这个存储过程,但是之前的存储过程之后发现代码比较混乱,足有200多行的代码,兵来将挡,一个上午的时间将先前的存储过程重新整理修改支持了分页自定义排序及搜索功能。本以为可以轻松,却发现任有几个文件夹不支持分页功能,原来这些文件中的文件只从数据库中取出部分数据,然后与xml文件交互后取出数据,多么蛋疼的事情,无赖只得找解决方案。网上搜索资料引出今天的主题——XSLT( E Xtensible S tylesheet L anguage Transformations)。 XSLT 在 1999 年 11 月 16 日被确立为 W3C 标准,现在几乎所有的浏览器都支持XML和XSLT。XSLT 用于将一种 XML 文档转换为另外一种 XML 文档,或者可被浏览器识别的其他类型的文档,比如 HTML 和 XHTML。通常,XSLT 是通过把每个 XML 元素转换为 (X)HTML 元素来完成这项工作的。通过 XSLT,您可以向或者从输出文件添加或移除元素和属性。您也可重新排列元素