201411-07 PHP数据库缓存扩展Memcache简介、安装及相关函数大全 一、简介及安装Memcache模块提供了于Memcached方便的面向过程及面向对象的接口,Memcached是为了降低动态web应用从数据库加载数据而产生的一种常驻进程缓存产品。Memcache模块同时提供了一个session 处理器(memcache)。安装Memcached步骤可参考这篇文章:Ubuntu中memcached的安装和配置。安装PHP的Memcache扩展:从http://pecl.php.net/package/memcache这里下载相应的扩展安装包,然后解压到指定目录cd/path/to/mem... 继续阅读 >
201411-07 PHP高性能分布式内存对象缓存系统扩展Memcached的安装及使用 一、简介及安装memcached是一个高性能分布式的内存对象缓存系统,通常被用于降低数据库加载压力以提高动态web应用的响应速度。此扩展使用了libmemcached库提供的api与memcached服务端进行交互。它还提供了一个session处理器(memcached)。关于memcached的安装,可参考这篇文章:Ubuntu中memcached的安装和配置。在安装php扩展memcached之前,需要先安装libmemcached,libmemcached是memcached的C/C++本地客户端库。安装lib... 继续阅读 >
201411-07 PHP扩展之针对搜索引擎的扩展(一)——Apache Solr 简介及安装Solr扩展允许你在PHP5中有效的和ApacheSolr服务器通话。Solr扩展快速,轻量级,有允许PHP开发者和Solr服务器实例有效通话的特性丰富的库。兼容APacheSolr1.3和1.4。有内置工具添加文档和更新到solr服务器,还有工具允许你在搜索文档时构建高级查询。需要PHP5.2.11及以上版本。需要安装libxml及curl扩展。使用示例Example#1启动文件的内容<?php/* Solr服务器的主机域名*/define('SOLR_SERVER_HOSTNAME',... 继续阅读 >
201411-07 PHP扩展之针对搜索引擎的扩展(二)—— Sphinx简介、安装及使用 一、简介及安装该扩展提供了针对Sphinx搜索客户端开发库的绑定.Sphinx是一个独立的搜索引擎系统,其目的是为其他相关程序和应用提供快速的、规模可扩展的全文搜索功能.Sphinx有着良好的设计,可以很方便的与SQL数据库结合,并使用脚本语言调用.Sphinx以及其客户端库可以从 官方站点获取,中文用户也可以从Coreseek获取支持中文的版本和服务。安装需求:需要PHP5.2.2及以上PHP版本。安装步骤请参考:Linux下编译安装Sphin... 继续阅读 >
201411-07 PHP扩展之文本处理(一)——字符串及字符串函数大全 这些都是以各种方式处理字符串的函数。还有一些专门的章节位于正则表达式和 URL处理部分。关于字符串的运转机制,特别是关于单引号、双引号、转义序列的信息,参见字符串条目。字符串函数大全:addcslashes —以C语言风格使用反斜线转义字符串中的字符addslashes —使用反斜线引用字符串bin2hex —将二进制数据转换成十六进制表示chop —rtrim的别名chr —返回指定的字符chunk_split —将字符串分割成小... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式概述及示例 这些函数中使用的模式语法非常类似perl。表达式必须用分隔符闭合,比如一个正斜杠(/)。分隔符可以使任意非字母数字,除反斜杠(\)和空字节之外的非空白ascii字符。如果分隔符在表达式中使用,需要使用反斜线进行转义。自php4.0.4开始,可以使用perl样式的()、{}、[]以及<>作为分隔符。结束分隔符后面可以紧跟模式修饰符来影响匹配效果。PHP也支持使用 POSIX扩展正则表达式函数 的POSIX扩展语法的正则表达式。... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法1——分隔符 当使用PCRE函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线、非空白字符。经常使用的分隔符是正斜线(/)、hash符号(#)以及取反符号(~)。下面的例子都是使用合法分隔符的模式。/foobar/#^[^0-9]$#+php+%[a-zA-Z0-9_-]%如果分隔符需要在模式内进行匹配,它必须使用反斜线进行转义。如果分隔符经常在模式内出现,一个更好的选择就是是用其他分隔符来提高可读性。/http:\/\//#http://#... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法2——元字符 正则表达式的威力源于它可以在模式中拥有选择和重复的能力。一些字符被赋予特殊的涵义,使其不再单纯的代表自己,模式中的这种有特殊涵义的编码字符称为 元字符。共有两种不同的元字符:一种是可以在模式中方括号外任何地方使用的,另外一种是需要在方括号内使用的。在方括号外使用的元字符如下:\一般用于转义字符^断言目标的开始位置(或在多行模式下是行首)$断言目标的结束位置(或在多行模式下是行尾).匹配除换行... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法3——转义序列(反斜线) 反斜线有多种用法。首先,如果紧接着是一个非字母数字字符,表明取消该字符所代表的特殊涵义。这种将反斜线作为转义字符的用法在字符类内部和外部都可用。比如,如果你希望匹配一个"*"字符,就需要在模式中写为"\*"。这适用于一个字符在不进行转义会有特殊含义的情况下。但是,对于非数字字母的字符,总是在需要其进行原文匹配的时候在它前面增加一个反斜线,来声明它代表自己,这是安全的。如果要匹配一个反斜线,那么... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法4——Unicode字符属性 自从PHP4.4.0和5.1.0,三个额外的转义序列在选用 UTF-8模式时用于匹配通用字符类型。他们是:\p{xx}一个有属性xx的字符\P{xx}一个没有属性xx的字符\X一个扩展的Unicode字符上面 xx 代表的属性名用于限制Unicode通常的类别属性。每个字符都有一个这样的确定的属性,通过两个缩写的字母指定。为了与perl兼容,可以在左花括号{后面增加^表示取反。比如: \p{^Lu} 就等同于 \P{Lu}。如果通过 \... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法5——锚和句点 锚在一个字符类外面,在默认匹配模式下, ^ 是一个断言当前匹配点位于目标字符串开始处的断言。在一个字符类内部, ^ 表明这个字符类中描述的字符取反(详见下文)。^ 并不一定要是模式的第一个字符,但是如果处于某个可选分支时,它应该是该分支的首字符。如果所有选择分支都以 ^ 开头,这就是说,如果模式限制为只匹配目标的开头,它被称为是一个”紧固”模式。(同样也有其他方式可以构造出紧固模式)$ 是用于断言... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法6——字符类(方括号)和可选路径(|) 字符类(方括号)左方括号开始一个字符类的描述,并以方中括号结束。单独的一个右方括号没有特殊含义。如果一个右方括号需要作为一个字符类中的成员,那么可以将它写在字符类的首字符处(如果使用了^取反,那么是第二个)或者使用转义符。一个字符类在目标字符串中匹配一个单独的字符;该字符必须是字符类中定义的字符集合的其中一个,除非使用了^对字符类取反。如果^需要作为一个字符类的成员,确保它不是该字符类的首字符,... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法7——内部选项设置 PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY,PCRE_EXTRA, PCRE_EXTENDED andPCRE_DUPNAMES等模式修饰符设置可以在模式内部通过一个perl选项字符序列来设置,语法为:(?修饰符),可用的修饰符有:Internaloptionlettersifor PCRE_CASELESSmfor PCRE_MULTILINEsfor PCRE_DOTALLxfor PCRE_EXTENDEDUfor PCRE_UNGREEDYXfor PCRE_EXTRAJfor PCRE_INFO_JCHANGED比... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法8——子组(子模式) 子组通过圆括号分隔界定,并且它们可以嵌套。将一个模式中的一部分标记为子组(子模式)主要是来做两件事情:将可选分支局部化。比如,模式cat(arcat|erpillar|)匹配”cat”,“cataract”,“caterpillar”中的一个,如果没有圆括号的话,它匹配的则是”cataract”,“erpillar”以及空字符串。将子组设定为捕获子组(向上面定义的).当整个模式匹配后,目标字符串中匹配子组的部分将会通过 pcre_exec()() 的 ovector... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法9——重复/量词 重复次数是通过量词指定的,可以紧跟在下面元素之后:单独的字符,可以是经过转义的元字符。字符类后向引用(参加下一部分)子组(除非它是一个断言)一般的重复量词指定了一个最小数值和一个最大数值的匹配次数,通过花括号包裹两个数字,两个数字之间用逗号隔开的语法定义。两个数值都必须小于65536,并且第一个数字必须小于等于第二个。比如: z{2,4} 匹配”zz”,“zzz”,“zzzz”。单个的右花括号不是特殊字... 继续阅读 >
201411-07 PHP扩展之文本处理(二)——PCRE正则表达式语法10——后向引用 在一个字符类外面,反斜线紧跟一个大于0(可能还有一位数)的数字就是一个到模式中之前出现的某个捕获组的后向引用。如果紧跟反斜线的数字小于10,它总是一个后向引用,并且如果在模式中没有这么多的捕获组会引发一个错误。换一种说法,被引用的括号不能少于被引用的小于10的数量。查看上面的”反斜线”部分查看具体的数字处理方式。一个后向引用会直接匹配被引用捕获组在目标字符串中实际捕获到的内容,而不是匹配子... 继续阅读 >