首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

正则表达式中贪婪和非贪婪(惰性)匹配的区别与效率问题

什么是贪婪模式匹配? 正则中“贪婪模式匹配”原则是: 当解释器将代码中的字符解析成一个个的 编译器在处理代码时眼中看到的最小语法单元时,编译器会使用一种贪婪匹配算法,也就是说会尽可能让一个单元包含更多的字符。 非贪婪匹配的效率 可能有不少的人和我一样,有过这样的经历:当我们要匹配类似 "<td>内容</td>" 或者 "加粗" 这样的文本时,我们根据正向预搜索功能写出这样的表达式:"<td>([^<]|<(?!/td>))*</td>" 或者 "<td>((?!</td>).)*</td>"。 当发现非贪婪匹配之时,恍然大悟,同样功能的表达式可以写得如此简单:"<t...
类别:网页编程    查看:135    更新:2014-07-29

PHP中require() 與 require_once() 的效率比較

刚发现require_once()比require()慢,以前我的项目全是使用的require_once(),郁闷...  > 最好直接使用include或者require,  > 因为*_once()在一个opcode缓存下的调用非常慢.  > #_once()需要额外的去查看系统是否已经调用过这个文件.  译者注:  5.2.X对require_once()和include_once()进行了优化,所以不用担心这个问题了.  摘一段文章如下:  PHP 5.2 以前 require_once()  和 include_once() 的做法是无论某个文件是否已经被缓存或编译过,统统是先 fopen() 再说,打开成功后在查询一下是否已经缓存过。这么处理的原因就...
类别:网页编程 - PHP技术    查看:83    更新:2014-05-19

如何提高MySQL中数据装载效率

很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的。然而,也存在可用来改善数据装载操作效率的策略,其基本原理如下: 成批装载较单行装载更快,因为在装载每个记录后,不需要刷新索引高速缓存;可在成批记录装入后才刷新。 在表无索引时装载比索引后装载更快。如果有索引,不仅必须增加记录到数据文件,而且还要修改每个索引以反映增加了的新记录。 较短的SQL 语句比较长的SQL 语句要快,因为它们涉及服务器方的分析较少,而且还因为将它们通过网络从客户机发送到服务器更快。这些因素中有一些似乎微不足道(特别是最后一个因素...
类别:数据库 - MySQL    查看:97    更新:2014-05-19

53个编程技巧提高PHP开发效率

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。  1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。  2、$row[’id’] 的速度是$row[id]的7倍。  3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。  4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。  5、...
类别:网页编程 - PHP技术    查看:87    更新:2014-05-04