这里说的正则表达式优化,主要是针对目前常用的NFA模式正则表达式,详细可以参考:正则表达式匹配解析过程探讨分析(正则表达式匹配原理)。从上面例子,我们可以推断出,影响NFA类正则表达式(常见语言:GNU Emacs,Java,ergp,less,more,.NET语言, PCRE library,Perl,PHP,Python,Ruby,sed,vi )其实主要是它的“回溯”,减少“回溯”次数(减少循环查找同一个字符次数),是提高性能的主要方法。 我们来看个例子: 源字符串:<script type="text/javascript">adsfadfsdasfsdafdsfsadfsa</script> 匹配要求,匹配<script….>….</script>标签里面所有内容,包括改标签 常见写法(1),因为<script后面...
阅读全文
前不久,我们推荐了个正则表达式入门学习工具。正则表达式工具推荐(学习工具、测试工具) ,今天我们看下,正则表达式的性能测试工具。这里我们先说下,为什么需要这样的工具,这个工具有什么作用呢? 为什么需要性能测试工具 我们都知道,正则表达式使用进行搜索查找,没有字符串直接查找快!而且性能是几何倍数下降。那么,为什么正则表达式速度会比字符串搜索慢呢。我们来看看,正则表达式查找字符串的匹配过程吧。正则表达式由一些元字符,普通字符,量词字符组合成。默认情况下,这些量词元字符(*,+,?)都是贪婪模式,会最大长度匹配字符串。我们知道,正则表达式往往搜索路径会有多个,我们看看,下面匹配过程。就知道,主要影响正则表...
阅读全文
这个问题很多做php开发朋友应该都有遇到过,一个启用了session_start 页面,由于执行时间过长。导致通一个用户访问,另外一个很简单的启用session_start页面一直阻塞着。 直到第一个页面执行完了。第二个页面就可以读取。这个就是,我们常说的,session阻塞机制。 我用file 存放用户session session默认以文件保存,当一个用户访问session_start页面后,这个时候,就会默认创建一个包含session_id文件名,并且这个时候,会对文件进行锁定。如果这个用户点击链接,又访问一个该站session_start网页。这是,由于session_id一样,这个页面也有读取锁定该用户存放session文件。 由于,第一个页面没有执行完,它一直锁定了该文件。 第2...
阅读全文
以前看了,很多框架,基本上很少使用相对路径包含。而一般很多做php web站点,喜欢用相对路径。 认为这样,无论目录放到那里。 只要跟另外目录关系一致。那么就不会出现问题。如果一个站点,一般都认为,如果用根目录,经常会改变网站地址,觉得很不方便。其实,我们从各大常见框架里面会发现,基本上都是采用是绝对路径方法。 相对路径带来问题 我们有如下结构的目录。 <web>(网站根目录)
├<a>文件夹
│ │
│ └a.php
├<b>文件夹
│ │
│ └b.php
└test.php
如果b.php 包含a.php (include(“../a/a.php”)) ,然后test.php 包含b.php (include(“b/b.php”)) ,我们发现很奇怪问题。
首先访问:b.php 可...
阅读全文
我还是觉得自己开辟搭建一个独立blog平台,我常用linux服务器,因此选择php环境。 这样,我可以选择的开源博客系统会有很多。这里不对博客系统进行纵向对比。我说下,对wordpress认识过程,一些自己的体会。纯属代表个人意见,欢迎讨论! 刚开始,下载一套wordpress 3.5,然后一路安装下来,比较简单,跟常见其它一些开源平台查不到。 只要配置好数据库连接,然后一路下一步,分把钟就可以做好。 也是由于,对wordpress 早已经有所耳闻,而且感觉它名气很大,这类系统中佼佼者。 首先看看它数据库结构吧 11张表,实现了强大的博客功能,首先表示不简单。现在很多cms 基本上都是40-50个表。其中很有几张表,设计...
阅读全文