Archive for php
PHP5.2+fastcgi安装Zend Optimizer的安装方法
发表于 2011-08-14 17:27 : 评论 ( 没有评论 )
使用fastcgi、Zend Optimizer3.3.3、PHP5.2.17,有如下问题: 使用“非线程版本”(php-5.2.17-nts-Win32-VC6-x86.zip),会提示:Zend Optimizer not installed 使用“安全线程版本”(php-5.2.17-Win32-VC6-x86.zip),则会提示:fastcgi error 500错误 php环境各软件版本选择: MySql 版本,对于环境搭建的成败没太大影响。 主要是PHP的选择,有以下原则: 如果程序为zend加密,那么php5.3以上的版本则不能选择,因为php5.3起不支持Zend Optimizer,需要使用zend loader,详情:http://www.4wei.cn/archives/1001038 。 如果程序有zend加密,那么不能选择非线程安全版,微软的说法是 fastcgi使用非线程安全版PHP执行效率会更高,也推荐的是非线程安全版,但是,非线程安全版却不支持zend。 也就是说如果要使用zend,运行fastcgi模式 必须选择“安全线程版本”。 在Linux下,也会出现这样的情况,当你使用CGI且在phpinfo中提示有“Thread Safety disabled”的时候,就表示你的系统无法支持ZendOptimizer,访问Zend加密过的文件就会出现“500 Internal Server Error”。 推荐环境: 可以将PHP编译成apache的模块,简单方便 CGI+线程安全模式
写了一条匹配图片地址的正则
发表于 2011-06-30 08:12 : 评论 ( 没有评论 )
平时不经常用到,用起来的时候总会去重复写正则。 于是准备了下面两个正则,能匹配带HTTP和不带HTTP的链接。
PHP遍历文件的4种方法
发表于 2011-06-15 14:45 : 评论 ( 没有评论 )
【常规遍历方法】 常规遍历方法是指从PHP4开始就可以使用的方法,它是结合使用opendir()函数和readdir()函数,通过打开目录,读取目录和关闭目录,逐一判断列出所有的文件。 当然,这不是本博想要推荐的方法。 简单实现代码如下: 【使用glob】 glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径,类似于一般 shells 所用的规则一样。不进行缩写扩展或参数替代。 返回一个包含有匹配文件/目录的数组。如果出错返回 FALSE。 此函数不能作用于远程文件,被检查的文件必须通过服务器的文件系统访问。 这个函数用来搜索某个目录下的文件,堪称神器。 【使用directory 类】 这是个仿冒面向对象的机制来读取一个目录。 dir() 函数打开一个目录句柄,并返回一个对象。这个对象包含三个方法:read() , rewind() 以及 close()。并且有两个属性可用。handle 属性可以用在其它目录函数例如 readdir(),rewinddir() 和 closedir() 中。path 属性被设为被打开的目录路径。 若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 “@” 来隐藏 error 的输出。 注意: read 方法返回的目录项的顺序依赖于系统。 注意: 本函数定义了内部类 Directory,意味着不能再用同样的名字定义用户自己的类。 【RecursiveDirectoryIterator类】 此方法自PHP 5.0有效
使用PHP取远程文件的大小的3种方法
发表于 2011-06-15 14:37 : 评论 ( 1 条评论 )
1、【最傻最天真的方法】 将文件使用file_get_contents取回后,strlen 或者存为文件后使用filesize 嘿嘿 2、【使用get_headers】 如果没有打开allow_url_fopen 会显示waring Warning: get_headers() [function.get-headers]: URL file-access is disabled in the server configuration 示例代码如下: 3、【使用fsockopen,然后正则匹配出文件大小】 使用fsockopen向目标地址发送http request,然后根据服务器的response使用正则匹配
解决Discuz!X周期性抽风,实现Discuz!X自动清理缓存
发表于 2011-05-13 16:32 : 评论 ( 没有评论 )
哥们刚刚入职到EOE,管理公司的几个论坛,差点没让X1.5的UTF-8版本给整背过气去。 现在论坛一段时间后发现论坛周期性(大约每天2次)出现问题,页面title消失,登陆框错位,DIY模块内容消失等,搞得人好乱呐。 一直没有找到原因,但每次都是清理缓存过问题解决。 Discuz!X上一找,有问题的同志不少,而且都是UTF-8版(你说中国人最啥他要迷信UTF8版呐,模板少,插件少,问题多,占用资源多)。 没有时间做DX整体的代码跟踪,只好从表面上解决问题,那就是隔一段时间自动清理一下缓存。 于是开发了下面的计划任务,很简单,估计其它朋友也用得着,所以发上来分享下。 代码很安全,不要怀疑我的菊花。代码中也加了一些说明,有个性需求的同学可以修改下。 配置方法也很简单,不过我还是截图了,方便一些新同学。
PHP大小写是否敏感问题的汇总
发表于 2011-05-4 11:04 : 评论 ( 没有评论 )
PHP的大小写敏感可以总结写“变量敏感,函数不敏感”,所有变量、常量、PHP.ini中配置参数都是敏感的,而函数、类、类中的方法、魔术方法,都是不区分大小写的,PHP6的命名空间还未测试,但应该是区分大小写的。
discuz!X1.5与用户(UID)有关的字段表(字典)
发表于 2011-05-3 10:45 : 评论 ( 1 条评论 )
完成多个论坛的合并时,需要对用户相关的表进行UID升位,增加合并后的偏移量。 于是整理了以下数据字典,方便在程序中使用。
