存档
-
在Godaddy的主机上配置CodeIgniter
之前在CodeIgniter上部署过一个小的CodeIgniter的应用,参考了这篇文章,当时顺利的完成了部署运行的任务。主要是因为在Godaddy的虚拟主机上使用rewrite模块产生的问题,原因不知道,只知道一种解决问题的办法。主要的步骤为:
在config.php里修改配置,使用QUERY_STRING的方式来解析URL
$config['uri_protocol'] = "QUERY_STRING";
然后,修改.htaccess文件,使其内容为如下所示:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?$1 [L]
这样,某个请求,如http://www.example.com/blog/view/123 ,实际上会被解析成http://www.example.com/index.php?blog/view/123 ,但是,假如我使用的请求必须通过GET方法传参数呢?这种解决方案就不能解决问题了。如http://www.example.com/index.php?blog/view/123?from=1009&author=bbiao ,这个时候就无法通过parse_str($_SERVER['QUERY_STRING'], $_GET);的方法来获得GET的数据了。但是我们可以观察到$_SERVER['REQUEST_URI']里保存了blog/view/123?from=1009&author=bbiao的值,OK,解析一下这个数据就可以了。代码如下:
$arr = explode(‘?’, $_SERVER['REQUEST_URI']); parse_str($arr[1], $_GET);
另外说一句,由于CI里是把$_GET的数据清空的,所以才有了以上的这些说法,CI本身是不推荐使用GET来传递参数的,但有时候又不得不用,比如使用OAuth的时候,别人回调你的接口的时候都是这样传的,你能怎么办呢?事情总有解决办法的,现在我的程序在Godaddy上跑的一切正常。219 次查看 | 没有评论 -
AOP in PHP
我们假设你使用的是Windows环境下的AMP环境,并认为假如你在知道如何配置Windows下的PHP的扩展的情况下,也知道如何配置Linux下的环境。
首先要启用runkit,在Windows上如果没有启用这个模块,你可以去http://museum.php.net/php5/下载一个PECl的集合,然后把php_runkit.dll解压到PHP安装目录下ext文件夹里,并在php.ini里加上一句:
[PHP_RUNKIT]
extension=php_runkit.dll
然后你就可以使用runkit在运行时动态改变函数以及类中的方法,具体的作法请参考runkit的文档,有时间我可以把runkit再封装一下,使它真正的可以直接拿来做aop。
另外,所有看了classkit又找不着扩展安装的同学 ,就不要再用classkit了,那个项目已被runkit代替,虽然这个现在也不发布新版本了。308 次查看 | 没有评论2009年9月18日 | 归档于 技术 -
CodeIgniter中PNG图片处理背景不透明问题的解决办法
BS一下自己起的这个标题。
本文仅限于解决使用GD2来处理图片的情况。
我想很多用CodeIgniter的人都会有这样的需求,用户上传了一张照片,需要对照片进行一定的修改以后(缩放,调整大小)再存储下来,但是如果用户上传了一张背景透明的PNG图片,那么我们使用CodeIgniter中的Image_lib进行裁剪以后,将会得到一张背景是黑色的图片,为什么会产生这个错误呢,我们来看一下CI的处理逻辑。新建一张图片,该图片默认是黑色不透明背景
把源图片相应区域中的内容复制到新图片上
处理完毕毫无疑问,你将获得一张黑色背景的图片,其最根本原因还是在于使用GD2来处理图片时,imagecreatetruecolor函数本身生成的就是一张黑色不透明的图片,你把一个透明的图片拷贝到它上面,当然背景就变黑了,所以我们只要在以上步骤里的1与2之间添加处理,将新图片的背景设置成100%透明即可以解决这个问题。
在Image_lib.php(CodeIgniter 1.71版本)的515行
即$dst_img = $create($this->width, $this->height);之后添加
// Transparent the background!!! if ($create == ‘imagecreatetruecolor’) { imagesavealpha($dst_img, true);
$color = imagecolorallocatealpha($dst_img, 0, 0, 0, 127); imagefill($dst_img, 0, 0, $color); }
便可以解决问题了。
更新,提供另一种办法:
// Transparent the background!!! if ($create == ‘imagecreatetruecolor’) { [...]280 次查看 | 没有评论2009年9月17日 | 归档于 CodeIgniter -
Freeware – XAMPP
自己使用过很长一段时间的Apache+MySQL+PHP,虽然各自都有安装文件,但是对于一个刚接触这些东西的人来说,一定会被它的配置困扰过,刚开始不懂,去网上一通乱查,后来知道了去看文档,但是这种成熟的软件,一般配置项都比较复杂,而且像mysql更是缺少一个易用的管理客户端。xampp现在看来是一个不错的选择,安装以后,apache,mysql,php便立即可用,推荐。
另外,推荐安装xampplite,这个版本不包括FileZilla Server,一般做开发也不需要架设FTP。
下载:http://sourceforge.net/projects/xampp/220 次查看 | 没有评论 -
Ubuntu下配置Web环境
Ubuntu下配置Apache、PHP、MySQL、Memcached
348 次查看 | 没有评论2009年7月13日 | 归档于 技术

最新评论