摘要: 主要内容基础PHP中的正则表达式函数常用的正则表达式基础 不用多讲,正则表达式(以下简称正则)是处理字符串的一种工具,它可以帮助你从字符串中提取你想要的内容,也可以用来验证某个字符串是否合法。几乎每种编程语言都提供了对正则的支持。有两种正则表达式的版本:POSIX和PERL,这两种版本在语法和效率上有一些差别。下面我们以PERL版本为例(据说效率比POSIX更高),PHP中提供了以preg_开头的函数来支持PERL版本的正则。 我把正则表达式的语法分类为元素、元素的个数、容器、逻辑或、特殊字符的转义五个部分。中文课本上那些怪怪的名字让我很反感,这样分让我感觉比较舒服,至少目前是这样。 元... 阅读全文
posted @ 2013-08-22 11:20 踏云摘星 阅读(236) 评论(1) 推荐(0)
摘要: PHP中提供了很多排序方法:sort rsort asort arsort krsort ksort uasort uksort usort natcasesort natsort shuffle array_multisort。PHP官网文档做了很好的说明。这些数组排序函数功能差异体现在以下几个方面:排序后是否改变键值(函数名中有没有字母a)、按照key或value排序(函数命中有没有字母k)、升序或降序(函数名中有没有字母r)、是否为用户自定义(函数名中有没有字母u)。函数natcasesort、natsort、shuffle、array_multisort比较特殊。 shuffle... 阅读全文
posted @ 2013-05-13 17:31 踏云摘星 阅读(248) 评论(0) 推荐(0)
摘要: 注:这篇文章的内容出自ircmaxell的博客,这里只是翻译整理一下! 这节我们将继续在上节的基础上,探讨PHP的内核实现,上节主要讲了如何在PHP源码中找到一个PHP函数的实现, 并以strpos函数为例,简要分析了它的实现过程。这节我们主要分析一下PHP中的变量,即源码中随处可见的zval类型。走进zval PHP是一种弱类型语言,不需要变量的类型声明,解释器会根据上下文环境,来决定当前变量是什么类型。PHP有Intger、String、Boolean、Float四种基本类型;Array、Object两种复合类型;还有Resource、NULL两种特殊类型。那么这些“PHP类型”是... 阅读全文
posted @ 2013-05-01 13:00 踏云摘星 阅读(259) 评论(0) 推荐(0)
摘要: 注:这篇文章的内容出自nikic的博客,这里只是翻译整理一下! 上一部分我们讨论了从哪里获取源码,以及源码的主要结构。这部分我们主要讨论,如何找到一个PHP核心函数的C源码,以及它的实现。 如何获得PHP核心函数的C源码 这里我们以strpos函数为例,首先进入PHP5.4源码的根目录,在搜索框中输入strpos,你会发现搜索出了很多,找起来很不方便,我们使用一点小小的技巧,在搜索在搜索框中输入"PHP_FUNCTION strpos"(注意:要加引号),现在,得到了两条搜索结果: /PHP_5_4/ext/standard/ php_string.h 48 PHP_FUN 阅读全文
posted @ 2013-05-01 00:28 踏云摘星 阅读(407) 评论(3) 推荐(0)
摘要: 注:这篇文章的内容出自ircmaxell的博客,这里只是翻译整理一下! 了解一件事情背后的原理,可以让我们处理起这件事情更加得心应手。这是PHP源码的第一篇博文,主要简单介绍从哪里获取源码、源码的大概结构。另外,这里源码统一使用5.4版本,一定要注意这点,后面的实验可能会因为版本不同而出现意外的结果。去哪里找到源码 PHP社区已经将PHP源码管理迁移到GIT,你可以在上面获取任何版本的PHP源码,打包下载到本地即可。如果你的电脑上装有git环境。可以使用如下的命令获取源码:git clone https://github.com/php/php-src.git 切换为5.4版本:cd p... 阅读全文
posted @ 2013-04-30 21:20 踏云摘星 阅读(473) 评论(0) 推荐(0)