分类2013年下的文章

Jerry Bendy 发布于 12月31, 2013

PHP高级面向对象:__call()详解

这是我写的第一篇面向对象的高级教程,主要思路来源于《深入PHP:面向对象、模式与实践》,我感觉这本书写得很好,我才读了三分之一就感觉获益匪浅。这次我要写的的关于PHP的魔法函数__call()的用法(语文是数学老师教的,文字可能太啰嗦,请见谅)。classfoo{function__call($name,$param){echo'你调用的函数名是'.$name;echo'调用参数是'.$parma;}}$bar=newfoo();foo->abc();很多教程都会给出如上这样的__call的基本使用方法,也就是在外部调用一个类里面不存在的函数时(注意是函数,而不是属性,如果是属性的话应该用__get()),...

阅读全文 »

Jerry Bendy 发布于 12月28, 2013

JQuery在所有图片加载完成后执行 & 图片的垂直居中

这两天没事的时候在做个小Tab页面玩玩,纯粹是做着玩,用来做为自己的主页方便打开各个自己常用的页面。在写HTML/CSS的时候遇到的最大的一个问题就是如何令图片在其父元素内垂直居中,因为父元素的高度固定宽度自适应,而且图片的宽高全部未知,max-width和max-height是90%,在网上找了好多资料,包括Display成table和table-cell都不能完美实现,最后只能尝试着使用JQuery动态来解决了。思路很简单,就是在网页加载完成后去判断图片的高度和其父容器的高度,用父容器的高度减去图片高度再除以2得到其Top值(需要提前把图片的position设为relative),再用JQ的CSS方法设置To...

阅读全文 »

Jerry Bendy 发布于 12月24, 2013

Photoshop自动添加3mm出血线的方法(脚本方法)

在使用Photoshop做平面设计的时候,尤其是做像名片、单页等印刷品需要加出血时,拉出血线总是一个麻烦而又不得不多次重复的问题,使用PS的动作虽然可以添加参考线,但只能按照设定好的位置添加,一旦改变图形的尺寸动作就不再有用了。所以我有一个设想:就是可以用某种方法自动根据图片的尺寸、分辨率来计算出血线的位置,并且自动添加参考线。经过多方查找资料并没有找到这样的工具,却发现PS可以自己写脚本,于是又是查资料、查SDK,最终还是没能实现自动拉参考线的方法……转而求其次:虽然不能自动创建参考线,那么如果能把需要的区域建立一个选区,然后再往矩形选区的四个边上拉参考线不就很方便了吗?!于是便有了以下代码(VBS代码):Di...

阅读全文 »

Jerry Bendy 发布于 12月22, 2013

curl模拟post 上传 接收文件

publicfunctionAction_Upload(){$this->path_config();exit();$furl="@d:\develop\JMFrameworkWithDemo.rar";$url="http://local.jumei.com/DemoIndex/curl_pos/";$this->upload_file_to_cdn($furl,$url);}publicfunctionupload_file_to_cdn($furl,$url){//初始化$ch=curl_init();//要上传的本地文件地址"@F:/xampp/php/php.ini"上传时候,上传路径前面要...

阅读全文 »

Jerry Bendy 发布于 12月21, 2013

官方原版Windows XP SP3(VOL)简体中文版ISO下载

大家知道,WindowsXPpro零售版,“贵”就贵在“密钥”上,而且安装后必须在30天内联网激活。今天,笔者提供的“WindowsXPprowithsp3VOL微软原版+正版密钥”(简体中文),最大优势就在于:下载刻盘安装后,无须任何破解即可自行激活,100%通过微软正版验证。而且,运行非常流畅,一定会给你带来开心的超常享受。WindowsXPwithsp3VOL微软原版(简体中文)下载:zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso大小:630237184字节MD5:E74D72F3D90456003E9E...

阅读全文 »

Jerry Bendy 发布于 11月22, 2013

PHP简单合并两个数组:数组相加

今天在看一个源码时意外发现了PHP数组的一种用法,可能这种用法早就被广泛流传了吧,只是我才刚知道。PHP在类中经常会用数组保存很多关于类的设置,而这些设置又可以被构造的时候通过传参覆盖掉,如果对这些参数都用实参来传递进行构造的话会显得很麻烦,而且默认值不好处理,于是就有了下面的方法:<?phpclassa{private$options;publicfunction__construct($option=array()){$this->options=array('a'=>'aaa','b'=>'bbb');$this->options=$options+$this->opti...

阅读全文 »

Jerry Bendy 发布于 11月12, 2013

CodeIgniter中对同一个核心类的多次扩展

CodeIgniter提供了对核心类进行扩展的方法,默认情况下是添加MY_前缀(当然这个前缀是可以改的),但是很多情况下我们可能需要对同一个核心类多次扩展,例如:我们可能需要在网站的所有后台管理页面的开头加上用户身份认证的代码,当后台有多个文件时就相当于有多个入口,而我们却不得不对每个控制器类文件的构造函数中添加身份认证的代码,很显然这样不利用代码的重用,而且不易于维护。还好,CI提供了扩展核心类的方法,这就意味着我们可以通过在Application/core中创建一个“MY_Controller”文件来扩展Controller类,然后在这个类的构造函数中进行身份认证,管理部分的控制器只需要继承自这个类就可以了。...

阅读全文 »

Jerry Bendy 发布于 11月09, 2013

高效MySQL分页方法

PERCONAPERFORMANCECONFERENCE2009上,来自雅虎的几位工程师带来了一篇”EfficientPaginationUsingMySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。首先看一下分页的基本原理:mysql>explainSELECT*FROMmessageORDERBYidDESCLIMIT10000,20G*****************1\.row**************id:1select_type:SIMPLEtable:messagetype:indexpossible_keys:NULLkey:PRIMARYkey_len:4ref:NULLro...

阅读全文 »

Jerry Bendy 发布于 11月09, 2013

php导入、导出CSV文件

PHP也可以操作Excel文件,但是这种方式有缺陷,老版本的excel有个数据上限,最多65536行数据,这时我们就无法通过excel来实现大数据的导出。为了导出大数据,我们可以通过导出csv的方式来实现:代码:classcsv{private$resource;/***@paramstring$fileName文件路径*@paramstring$mode文件访问类型:w:写入、r:只读*/publicfunction__construct($fileName,$mode){$this->resource=fopen($fileName,$mode);}publicfunction__destruct(){...

阅读全文 »