about 4 months ago - 1 comment
After installed Apache, MySQL, PHP on Windows 2008 R2 64-bit, I ‘m facing the strangest problem ever. My OS is 64-bit, but Apache, MySQL, PHP are all of 32-bit version. Though MySQL has official 64-bit version released, but I don’t see any benefit while Apache and PHP have not. When phpMyAdmin is installed and setup,
about 11 months ago - 2 comments
I’ve upgrade my WAMP(Windows+Apache+MySQL+PHP) to lastest versions, but Apache crashes more often then it used to be due to incorrect configuring PHP. Now I’ve finially got a stably working development environment. And here is some notes: go-pear.bat dose not work. When initializing as usual using go-pear.bat command, I got an error message: 12phar "E:\HTTPD\php-5.3.0-Win32-VC9-x86\PEAR\go-pear.phar" does
about 1 year ago - 2 comments
When installing PostfixAdmin, I found that I need to re-compile PHP to support IMAP, but later more problems came to me. Environment: Linux mail 2.6.27.7-smp #2 SMP Thu Nov 20 22:32:43 CST 2008 i686 Intel(R) Xeon(R) CPU E5405 @ 2.00GHz GenuineIntel GNU/Linux Q: PHP configure utility reports that there is no IMAP support on my system. A: According
about 2 years ago - No comments
通过 propel-convert-xml-schema 把 xml schema 转化成 PHP 代码的时候,如果一个字符型字段不能为空且没有明确输入默认值,例如: 1<column name="username" type="VARCHAR" size="128" required="true" default=""/> 生成的 PHP 代码中该字段的默认值是 ‘null’ 而不是 null,导致页面输入框的默认值不是空值,而是一个字符串的 null,很恼火。因为要么在页面中每个字段都对 ‘null’ 做特殊处理,要么修改生成的 PHP 类文件,但是一旦重新执行 propel-convert-xml-schema 就会重新覆盖。 解决办法:修改 propel-generator/classes/propel/phing/PropelCreoleTransformTask.php 文件(对于 Symfony 来说,就是 symfony/vendor/propel-generator/classes/propel/phing/PropelCreoleTransformTask.php)。应用如下 patch: 1234567507,510c507 < //$node->setAttribute("default", iconv($this->dbEncoding, ‘utf-8′, $defValue)); < if(!empty($defValue)) { < $node->setAttribute("default",
about 2 years ago - No comments
UTF-8 中的中文不是按照拼音排序的,因此对于 使用 UTF-8 编码集的字段就无法按照拼音进行排序,最简单的解决方法就是转成 GBK 编码。 实例代码: 12345SELECT * FROM `test` ORDER BY CONVERT( `test`.`name` USING GBK ) LIMIT 0 , 30 数据库表结构: 12345CREATE TABLE IF NOT EXISTS `test` ( `id` int(3) NOT NULL AUTO_INCREMENT, `name` varchar(10) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB
about 2 years ago - 1 comment
安装 symfony 库 用 PEAR 方式安装 12345678910# 在 PEAR 频道列表里添加 symfony 频道 pear channel-discover pear.symfony-project.com # 查看该频道内可用的包 pear remote-list -c symfony # 安装 symfony 包 pear install symfony/symfony # 安装完毕后,查看版本,确认安装成功 symfony -V # 用下面这句来安装最新的 beta 版 install symfony/symfony-beta Symfony 库被安装在以下目录内: $php_dir/symfony/:核心库。 $data_dir/symfony/:symfony 的程序框架,默认的模块和配置信息,全球化数据等。 $doc_dir/symfony/:文档。 $test_dir/symfony/:单元测试。 注:最新版本的 PEAR 安装 symfony 会出现错误,解决方法参见在 Linux 下用 PEAR 安装 Symfony
about 2 years ago - No comments
symfont 的 MVC 实现 模型层 数据库抽象层 数据访问 视图层 视图 模板 布局 控制层 前端控制 动作 symfont 的工作流: 代码组织 代码组织实例: 根目录文件树结构 apps/:一个子目录对应一个应用,通常是 frontend 对应前台,backend对应后台。 frontend/ backend/ batch/:需要从命令行运行或者周期性运行的 PHP 批处理脚本。 cache/:配置信息的缓存,以及动作和和模板的缓存(如果你启用了的话)。用这个缓存机制来加速请求的响应速度,每个应用都有一个对应的目录,放置预处理过的 PHP 和 HTML 文件。 config/:每个项目的常规配置信息。 data/:项目里和数据相关的文件,比如数据库模式、SQL 文件,甚至是 SQLite 的数据库文件。 sql/ functional/ doc/:项目文档,包括你自己写的文档,和由 PHPDoc 生成的文档。 lib/:外部的类或者库。你可以在这里添加需要在项目级共享的代码。 model/:目录里是项目整体的对象模型。 log/:由 symfony 直接生成的日志文件。 plugins/:插件目录。 test/:单元测试和功能测试脚本。在创建项目的过程中,symfony 会自动创建一些测试的。 unit/ functional/ web/:Web 服务器的根目录,只有这个目录里面的文件才能被访问到。 css/
about 2 years ago - No comments
来源:10 things you (probably) didn’t know about PHP PHP 是我用过的语言中,最令人恼火的但同时也是最有趣的语言。我之所以说“令人恼火”主要是因为函数命名极其不一致。尽管我每天都要用到这些函数,我还是要想一下“究竟是 str_pos 还是 strpos?是 str_split 还是 strsplit?”。另一方面,有时候可以用一行简单的代码就能解决一个难题。 下面是一些很酷的特性,很可能你也没有注意到: 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。 在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 “joeuser@wwwphp.net” 而不是 “joeuser@php.net” 的家伙们,这个方法可以很方便的抓住他们。 如果你使用的是 PHP 5 和 MySQL 4.1 或者更高的版本,考虑抛弃 mysql_* 系列函数改用改进版的
about 2 years ago - No comments
开发环境: Slackware Linux 12.0 Apache httpd-2.2.6 PHP 5.2.5 PEAR 1.6.2 根据官方文档,用 PEAR 安装 Symfony的命令如下: 12pear channel-discover pear.symfony-project.com pear install symfony/symfony 但是运行 channel-discover 的时候报错:Discovery of channel “pear.symfony-project.com” failed。 原因:PEAR 本身的 bug,不支持 channel 的 url 中包含 – 字符。 解决方法:用命令 pear upgrade -f PEAR-1.4.6 把 PEAR 降级到 1.4.6 版,然后正常安装,再用命令 pear upgrade-all 升级 PEAR。 或者应用 PEAR 的 Bug #6960
about 2 years ago - No comments
梨花体小诗一首做题记: 毫无疑问我犯的错误是全天下最神奇的 在 long long ago 的某一天,偶的 Windows 2003 + Apache 2.2 + PHP 5 + MySQL 5.1 突然访问所有的页面都非常慢,打开一个页面,甚至是什么都不做的页面,都要等上好几秒钟,一个简单的 phpinfo(); 居然花了 8s。 偶的 WAMP 环境是多少年一直免安装升级上来的,这些古董配置都是偶千调万改才定下来的最优化的配置。但是就是找不到错误原因。 今天 reinstall Windows 2003,趁机全新的安装了一下 AMP 环境,发现默认配置下,PHP 页面速度非常正常,但是把 php.ini 文件修改成我要的,就立马恢复超级慢的状态。预示 diff 出所作的修改,逐条测试,直到最后发现,只要 extentions 加载 php_mysql.dll 或者 php_mysqli.dll,就会变慢,多次测试的结果都证明了这个结论。 在 Google 上使劲找和 php、mysql、slow 相关的页面,都没有任何相关的问题,难道今天偶 RP 大爆发碰到了千年不遇的超级难题? 搜索这个关键字无果,不过发现最新的 Apache 2.2 的 conf 文件结构发生了变化,于是顺便看看相关的文档,决定把自己用了 n