
PHP
文章平均质量分 65
陈小峰_iefreer
创办踏得网,写了Stone、Myway、MyAvatar 3D等元宇宙引擎。
展开
-
10个Laravel4开发人员必用扩展包
Laravel是一个新的基于最新PHP版本语法,支持IoC等设计模式的快速开发框架。目前最新版本为4.2,推荐安装PHP版本5.5+。本文列举10个基本软件包,都是开发人员使用Laravel框架来构建WEB应用过程中应该要用到的,无需自己重复构建,如认证、调试、网站优化。翻译 2014-07-08 00:04:12 · 32744 阅读 · 1 评论 -
PHP5.5+启用OPCache
APC在PHP5.4及以下版本是性能最好的代码缓存。不过原创 2014-08-02 16:25:46 · 15042 阅读 · 2 评论 -
PHP别名引用错误:“The use statement with non-compound name … has no effect”
出现这个错误的原因有多种:1. 使用了kuangj原创 2014-07-27 22:05:07 · 31370 阅读 · 0 评论 -
Yii: 组件加载逻辑及自定义组件覆盖
有时候会遇到自己定义的组件没有被成功加载或者被覆盖的情况,那么就需要搞清楚组件加载的逻辑,以及可能被覆盖的情况。Yii中组件components的加载是在CApplication被实例化的时候执行的,如下: public function __construct($config=null) { ...... $this->preinit(); $this->initSystemH原创 2013-12-21 12:52:48 · 7305 阅读 · 3 评论 -
CentOS6.2平台升级PHP5.3.28到PHP5.5.14
由于一些新的开发平台只支持原创 2014-07-22 09:33:43 · 8462 阅读 · 1 评论 -
ufcms:yii based cms system programming notes
Note: ifCMS(originally named as ycms, but was found confliction with another one, so renamed to ifCMS, which simply means CMS created by iefreer) it is targetted to be a high performance-full function原创 2012-12-22 01:48:31 · 3986 阅读 · 5 评论 -
Magento技术架构简介
http://magentophp.blogspot.jp/2010/08/magento-architecture.html原创 2014-06-04 23:34:53 · 9074 阅读 · 2 评论 -
Apache/2.4.9启动错误:AH01630: client denied by server configuration
在升级Yii框架1.11->2.0beta时,顺带升级了Apache2.2->2.4.9原创 2014-07-15 21:14:09 · 18586 阅读 · 1 评论 -
Yii:CHtml::ajaxLink方法在URL format为path情况下的多参数传递示例
echo CHtml::ajaxLink('delete', array('/Social/comment/delete', 'id'=>$data->Id, 'type'=>'brief', 'key'=>$data->key), array( 'success'=>'function(){ $("#ext-comment-原创 2014-06-04 17:08:47 · 4964 阅读 · 0 评论 -
Yii:如何动态改变CDataColumn的htmlOptions属性
我们知道CGridView的CDataColumn可以设计htmlOptions属性,原创 2014-05-11 22:53:29 · 5281 阅读 · 0 评论 -
Yii: 配置命令行命令目录
默认情况下Yii的命令行命令都放在protected/commands目录下面,可以使用/path/to/entry_script.php help查看命令列表如果你想定制该目录,可以在配置文件中进行配置:return array( 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'commandPath'=>dirn原创 2014-03-26 00:56:57 · 3639 阅读 · 0 评论 -
Yii:给CGridView的某列添加操作按钮
派生CDataColumn的子类,覆盖CDataColumn的renderFilterCellContent函数:class YourDataColumn extends CDataColumn{ public $rowActions=array(); public $isRowActions = true; /** * Renders the原创 2014-03-25 02:55:39 · 3046 阅读 · 0 评论 -
ufcms:从windows/apache转到linux/nginx
关联链接:ufcms:yii based cms system programming notes主要有两点:1. 需要把apache vhost的配置改为nginx vhost的配置2. 需要把.htaccess文件修改为符合nginx语法规则的文件nginx vhost配置参考如下: server { listen 80; server_nam原创 2012-12-24 13:56:28 · 3081 阅读 · 3 评论 -
Yii: 片段缓存的使用
Yii没有插件支持页面静态化,但很好的支持页面片段缓存,虽然仍然需要经过PHP处理,考虑到网络因素,已经能和静态页面达到差不多的性能效果。下面是代码示范,解决的问题是根据用户会话情况来判断缓存的使用:beginCache('USER_DIV', array('varyBySession'=>1))) { ?> endCache(); } ?>如果使用的是文件缓存,该片段缓存保存在cache原创 2014-03-19 22:57:03 · 3596 阅读 · 1 评论 -
Web: html_entity_decode、空格 以及乱码
普通ASCII码空格为32,但是浏览器会对普通空格进行自动归并,也就是如果你输入10个0x20的空格在HTML页面里面,可能会被合并成一个空格。如果想要一致的呈现多个空格,就要用到 ,这个空格的编码为160,为西欧ISO-8859-1编码标准。为了让经过HTML编码的内容还原为原来的文本字符,可以使用html_entity_decode方法,但这样问题就来了,通常HTML编码内容为UTF8原创 2014-03-31 00:20:07 · 8720 阅读 · 0 评论 -
OpenCart: 架构概览
OpenCart是一个代码设计精致小巧的电子商务系统。[Written by iefreer: Founder of Techbrood.com]1、MVC架构:OpenCart是基于MVC范式的。model层负责获取数据。和其他一些框架如CakePHP相比,model的功能实现有限但简洁,直接调用DB类实现数据CRUD操作。(CakePHP的模型层支持基础数据验证,复杂业务逻辑由Controll原创 2011-08-19 21:17:22 · 10788 阅读 · 1 评论 -
Web: 使用Javascript新开一个浏览器标签而不是新开一个窗口
很多浏览器对新开弹出窗口进行了限制,popup窗口在默认情况下会被block掉。这样可能会造成按钮/链接/脚本不工作的假象。window.open("http:www.techbrood.com","_blank")以上JS语句是想新开一个窗口而不是在原有的窗口上跳转,这在分享内容时经常见到。究竟是弹窗还是新建标签页是由浏览器的设置决定的,并不由第二个参数_blank而确定。如果用户浏览器的设置是原创 2014-03-30 20:56:27 · 18178 阅读 · 0 评论 -
Apache: 使用mod_deflate模块启用gzip功能
检查你的网站是否启用了gzip,用chrome打开网站比如http://www.techbrood.com选中一个请求,查看Response header部分,如果没有包含Content-Encoding:gzip那么你还没有开启gzip网页压缩功能。开启方法是在httpd配置文件中添加如下语句(注意,这里使用了apache2里面的mod_deflate而不是1.3里面的mod_gzip): A原创 2014-04-02 01:41:11 · 14026 阅读 · 3 评论 -
Yii2快速构建RESTful Web服务功能简介
Yii2一个重要的功能升级是内置完整的RESTful支持。只需要简单的配置就可以为已有资源创建一整套服务,且包含开箱即用的安全(如OAuth2)、访问速率、定制字段、内容协商等等高级接口支持。原创 2014-07-29 21:32:43 · 32512 阅读 · 4 评论 -
Yii1中Model中Relation定义和with、together方法使用注意点
在Yii中如果使用Model(ActiveRecord)来完成联合查询,我们首先需要在Model中定义关联关系。Yii并不会默认进行关联查询,我们需要使用类似如下的代码:Article::model()->with('Category')->together()->find...这个语句将按照在Model中定义过的Relations来建立关联查询语句,默认LEFT JOIN。如果不使用togeth原创 2016-05-29 09:18:50 · 10596 阅读 · 0 评论 -
Yii 直接执行SQL语句的几种使用方法
yii1.x中直接使用sql查询(非ActiveRecord方式)的几个函数(execute/query/queryAll/queryRow/queryColumn/queryScalar)的简单使用方式。原创 2015-09-17 16:30:54 · 24600 阅读 · 0 评论 -
PHP下载远程图片的3个方法
本文演示3个从远程URL下载图片,并保存到本地文件中的方法,包括file_get_contents,curl和fopen。原创 2015-07-17 17:23:47 · 27326 阅读 · 0 评论 -
Yii 自定义表单验证规则和客户端验证
Yii使用rules来定义验证规则,缺省情况是在服务器端验证,如果想在客户端验证,那么需要给CActiveForm传递enableClientValidation参数。对于大部分情况上述规则就能满足需求,Yii会自动生成相应的客户端JS验证脚本。但对于一些自定义的界面控件,例如时间选择控件,要求对时间的取值做一定的范围约束,那么就需要用到自定义验证规则了。原创 2015-06-09 22:34:11 · 5118 阅读 · 0 评论 -
php readfile 下载大文件失败
大文件有200多M,只下载了200K就提示下载完成,且不报错。原创 2015-04-30 23:55:18 · 7401 阅读 · 0 评论 -
Yii:在ajax刷新中使用CJuiDatePicker日期控件
如果在ajax更新界面中使用到了CJuiDatePicker组件,那么注意需要重新执行jquery ui datepicker JS的初始化脚本,日期控件才能生效。另外datepicker控件依赖于jQuery UI插件,所以需要注册jquery ui的CSS和JS文件。原创 2015-05-01 00:15:13 · 2207 阅读 · 0 评论 -
Yii2 定制表单输入字段的标签和样式
Yii2中对于表单和字段的支持组件为ActiveForm和ActiveField,要生成一个具有label、input、error提示这样通用格式的登录框,可编写如下代码: <?php $form = ActiveForm::begin([ 'id' => 'login-form', 'options' => ['class' => 'form-horizon原创 2015-01-12 22:16:33 · 50454 阅读 · 1 评论 -
PHP打包下载多文件
PHP5.2+内置支持多文件打包,使用ZipArchive类。要实现多文件打包下载,分两步,第一步是使用ZipArchive压缩多个文件,然后使用header指令生成下载操作。第1步为了递归添加目录下所有子目录和文件,需要派生一个类,参考:1. http://php.net/manual/en/class.ziparchive.php#110719第2步结合readfile来读取并输出文件到用户端原创 2014-12-02 01:42:29 · 6258 阅读 · 0 评论 -
XAMPP环境访问非Web DocumentRoot下绝对路径
假设你的XAMPP网站文档根目录在C:/xampp/apache/htdocs/下面,那么访问这个目录下的文件是很直接的。但是有时候需要把用户上传文件指定到特殊目录,比如E盘,那么就需要用户能够访问非Web DocumentRoot下的目录。这在Apache中可以通过mod_alias模块提供的Alias(别名)指令来实现,即把操作系统的文件绝对路径和Web路径建立映射关系。在你的虚拟机配置文件中原创 2014-12-01 23:14:42 · 4119 阅读 · 0 评论 -
Python 检查数组元素是否存在 类PHP isset()
PHP中有isset方法来检查数组元素是否存在,在Python中无对应函数。原创 2014-10-11 00:06:34 · 13433 阅读 · 2 评论 -
OpenCart 2.0 Beta版本发布及其新特性简介
Joomla3和Joomla2的主要区别在于bootstrap和响应式设计的引入。和Joomla原创 2014-09-28 18:29:11 · 4143 阅读 · 1 评论 -
PHP json_decode不转义中文
默认情况下PHP的 json_decode 方法会把原创 2014-09-12 11:09:30 · 17450 阅读 · 0 评论 -
Yii1.1应用升级到Yii2.0的一些注意点
1. Yii2在视图层的一个显著改变是引入了视图类,所以相关附属类就you原创 2014-08-15 14:58:11 · 10487 阅读 · 1 评论 -
Yii2权威指南中文版及众包翻译平台
Yii2在今年4月份发布了beta版本,相信下半年会推出正式原创 2014-07-23 01:16:48 · 8560 阅读 · 2 评论 -
Yii2版本新特性简介
Yii2 Beta版本在今年4月份发布,目前正在修改问题和完善文档中。Yii2要求PHP版本不低于5.4,主要有如下改进:1)支持PHP框架间协作组制定的PSR-4标准,这简化了目录并提高了类自动加载速度 2)内置支持Restful API框架 3)支持依赖注入(Dependency Injection)和服务定位(Service Locator) 4)支持大批量数据查询 5)AR添加对redis原创 2014-06-04 22:14:36 · 5296 阅读 · 0 评论 -
Yii2日志使用方法
Yii2里面日志的使用方法和Yii有dia原创 2014-09-06 21:21:53 · 33949 阅读 · 0 评论 -
Yii: ActiveRecord的IN比较条件实现方式
使用ActiveRecord实现IN条件比较有两个方法。1. 使用addInCondition$criteria = new CDbCriteria();$criteria->addInCondition('status',array(1,2)); $results = News::model()->findAll($criteria);2. 使用compare$criteria = new原创 2014-03-28 19:22:51 · 8943 阅读 · 0 评论 -
Web:检查是否是合理的URL
1.使用filter_var:$url = http://www.techbrood.comif (filter_var($url, FILTER_VALIDATE_URL) !== false)注意:上述语句不能检查带参数的情况,带参数以及其他的模式匹配请参阅filter_var的参数说明2.使用正则表达式:$subject = "http://www.techbrood.com";$pat原创 2014-03-30 15:10:23 · 2043 阅读 · 0 评论 -
WEB:建立短链接服务
现有在线服务在实现分享功能的时候特别需要短链接服务,已有的在线url shorten服务包括:1. TinyUrl,API地址 http://tinyurl.com/api-create.php?url=your-url2. Bitly(bit.ly, 不能访问...)3. Yourls,API地址 http://yourls.org/#API4. dwz,百度提供的服务,API地址:http:/原创 2014-03-30 14:57:37 · 7629 阅读 · 1 评论 -
在线聊天、会议、远程教育系统开源技术方案
1、在线聊天企业网可以使用SIP/RTP或者服务质量更高的H.323互联网可以使用XMPP(原jabber,已被IETF标准化RFC3920),gtalk,openfire就是基于XMPP实现微信也是参照XMPP协议,activesync改进而来。XMPP本身使用http长链接来实现,不建议使用轮询方式。Hipmob是一个开源聊天系统,服务器端使用node.js实现:https://github.原创 2013-06-24 22:58:01 · 10725 阅读 · 0 评论 -
PHP语言的动态特性-Going dynamic with PHP
原文链接:http://www.ibm.com/developerworks/xml/library/os-php-flexobj/PHP5引入的面向对象的编程特性显著的提升了PHP语言的层次。不只是成员和方法的访问控制private, protected, public -- 和Java, C++, 或C#一样 -- 你同时还能创建运行期间能动态改变的对象,动态的创建一个新的方法和属性。这些是J翻译 2013-05-28 22:04:47 · 3109 阅读 · 0 评论