Submitted by gouki on 2008, May 19, 3:22 PM
PHP4现在咱就不提了,毕竟现在是5的时代。
个人而言,不用LINUX,不是说LINUX不好,而是我不太熟悉,如果需要远程的话,对我太痛苦。因此我选择了windows。
在windows下面配置apache和iis都是一样的方便。。。。
添加sqlite功能原来以为很简单,毕竟从PHP5开始,SQLITE就变成内置功能了,然而直接在php.ini里把extension=php_sqlite.dll前的分号去掉时,运行程序的时候提示我php_sqlite.dll没有被加载,确实让我很郁闷。
查阅一下google发现一个很无耻的事情,原来。。。如果直接要使用sqlite功能,必须先加载pdo.dll和pdo_sqlite.dll,只有先加载这两个DLL,才能使php_sqlite.dll被成功加载。
感谢:http://x.discuz.net/405175/viewspace-26726.html,让我找到了这个解决方案。开始我死活运行不了。。。看来我还是接触的少啊。
Tags: sqlite, 安装, 疑问
PHP | 评论:0
| 阅读:24302
Submitted by gouki on 2008, May 6, 5:06 PM
从PHP3开始。basename就存在于PHP之中,功能嘛。不用说了,就是用来取文件名。至于它不支持中文这点我也不谈了。问题是在PHP5.0.5这个环境里,居然有的时候会没有返回值。实在是太妖了。
由于在写的函数里,文件名是basename('/aaa/bbb/ccc')这样取出ccc后,再设定名称为:ccc.php,结果include的时候,偶尔会抛出异常:加载 .php无效 ,一直以为是代码写的有问题,没料到。。。竟然是basename偶尔不返回值?
到bugs.php.net看了一下,没有这个BUG,我也实在没有办法确认它到底是和服务器有关呢?还是纯粹就是这么一个BUG,现在我换成pathinfo来处理了,利用pathinfo来得到值,最后再组合成文件名称。
PHP | 评论:0
| 阅读:20223
Submitted by gouki on 2008, April 26, 7:50 PM
TURF(开源)权限定制系统是我学PHP时的偶像现在的作品,作者是开花石头,接触PHP较早的人应该会听说他,在喜悦村里也一直兼着版主的职务,只是……权限越来越小,现在终于沦为一个版块的版主了。偶像这么多年来也写过不少有用的小程序,象当年的《逆向小偷》、《通用权限管理》等,至今网上还流传着一个CHM版本的开花石头讲的PHP开发规范。如今,他主要在推广自己写的一套程序。网址是www.8y8u.com.cn,这里就不为他做广告了。
以下是石头的原话:
TURF(开源)权限定制系统终于发布了,含有文档、数据库字典、演示数据,激动、兴奋,其他不多说了,这是我做为一个后续开发的框架发布的,不是简单的一个权限系统,后续的还会慢慢完善,我相信我的想法,一定会领先最少2年。。。
也可以去石头的新浪博客看看他最近在忙啥,他的博客地址是:http://blog.sina.com.cn/relaxfox
关键字:开源 权限 定制
附件: turf_080426.rar (285.14 K, 下载次数:3013)
Tags: 开源, 权限, 定制
PHP | 评论:2
| 阅读:25654
Submitted by gouki on 2008, April 26, 3:28 PM
PHP代码
- <?php
- $str = "0123ABCDFWS\",.?<>{}[]*&^%#@!~()+-|:;";
- echo "$str";
- echo "<br>";
- $str = preg_replace('/\xa3([\xa1-\xfe])/e', 'chr(ord(\1)-0x80)', $str);
- echo $str;
- ?>
这是网上看来的代码,最初我想着,反正标点就那么多,直接用数组啥的替换一下就完事了。看了这个函数之后,发现自己了解的太少了。或者说自己的思路太狭隘了,从没有往深处这么想。看来所有的中文标点的第二个字节减去0X80(即128)所得的数字就是半角所得的数字了。而/e模式表达的是:如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。
PHP | 评论:1
| 阅读:22157
Submitted by gouki on 2008, April 12, 9:07 PM
在PHP开发中,很多时候都会看到别人的代码里有
$user = new stdClass();
$user->name = 'gouki';
这样的代码,这是干嘛用的呢?
翻开手册,搜索stdClass,你会发现,手册上几乎没有介绍,如果你再次搜索google,看到的也几乎全是英文解释。
其实,stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。似乎没有其他作用。也几乎没有任何说明。
或者,我们可以这么理解:stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法。
凡时用new stdClass()的变量,都不可能会出现$a->test()这种方式的使用。
或者,我们可以又这么理解一下,正因为PHP5的对象的独特性,对象在任何地方被调用,都是引用地址型的,所以相对消耗的资源会少一点。在其它页面为它赋值时是直接修改,而不是引用一个拷贝。
例如:
$user = new stdClass();
$user->name = 'gouki';
$myUser = $user;
$myUser->name = 'flypig';
如果在PHP4时代,这样的代码就是在消耗系统资源。因为:
$myUser = $user;
这是创建了一个拷贝。所以,在PHP4的时候,都是这样使用:
$myUser = & $user;
有人说,为什么不用数组呢?数组不是更方便吗?而且对于PHP这样的弱类型程序来说,用数组应该是最方便的。
确实。数组在程序的使用中应该是最方便的,然而数组的每次被引用($a = $b),其实都是创建了一个副本,而且,数组被unset后,还是占用了内存(这个是听人说来的,我没有测试……也不知道怎么测试,如果有人知道,请告诉我,谢谢 )
不过SPL的标准类库里,还有一个函数arrayobject,可以直接将数组转化为对象这也是一个好办法哦。
随便写写,没有打草稿,如果有错误,请通知我改正……
Tags: stdclass
PHP | 评论:1
| 阅读:22395