![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
book_ruanfongyi
这个作者很懒,什么都没留下…
展开
-
PHP输出非HTML格式文件总结
在PHP系统开发中,除了显示HTML外,偶尔也会遇到输出文件的问题,关于输出文件,主要是三类,1. 输出磁盘中已有文件 2. 输出生成的文件(如:csv pdf等) 3. 获取生成文件内容,做处理后输出,现在我一一对三类输出做一下总结。 1. 输出磁盘中已有文件 这个功能十分常用,一般系统都支持下载上传的文件,这个功能的实现十分简单,可以使用readfile函数轻易完成。...2011-04-14 16:37:22 · 188 阅读 · 0 评论 -
PHP根据年份和周数获取日期
这个是我总结PHP时间操作的第二篇文章,在开发周报,会用到一个函数,就是根据指定年份和周数,获取这一周的周一(开始日期)和周日(结束日期),我将这个函数封装后,贴在我的博客中,以供有需要的人参考。 废话不多说,直接贴代码: function getWeekDate($year,$weeknum){ $firstdayofyear=mktime(0,0,0,1,1...原创 2011-03-03 17:24:14 · 580 阅读 · 0 评论 -
Prototype 函数Position.clone在IE下失效
在我们的系统中,经常会用到点击一个按钮,于是在这个按钮的周围弹出一个div层,而Prototype中的函数Position.clone就是就能够很容易实现对div层的位置的移动,而我在IE下发现了一个很诡异的问题,就是第一次点击按钮,div层并不会移动,第二次点击后才移动。 关于这个bug,我花时间在网上搜索,终于在一片英文blog中找到了解决方法,其实解决的方法也很简单,看一下下面的代...原创 2011-03-04 14:01:11 · 89 阅读 · 0 评论 -
PHP中使用static变量做缓存(小技巧)
我最近为客户做一个导入功能,功能中有一个需求,客户中有一个媒体字段,导入后要根据导入客户的媒体,查出媒体的一些数据更新到这个客户的字段中。 当我做完后,测试导入功能没有问题,便交付了,过不多久,客户反映速度有点慢,在查原因,发现和查出媒体的一些数据有关,虽然sql语句执行时间很短,但是由于导入数据量很大,每一次都要执行,导致了时间延长了。 分析了原因后,我们想解决方案了,这个...原创 2011-03-10 13:16:02 · 594 阅读 · 0 评论 -
Make code sweet.PHP特殊用法的一些总结(1)
最近一个项目接近尾声了,工作慢慢轻松了下来,闲暇时就看看一些PHP的框架和一些优秀的开源软件中的代码,一来可以借鉴一下其中的常用代码和函数,二来通过阅读别人的代码了解一些平时不太常见的函数以及特殊用法。这些代码都是针对PHP 5编码的,这样才能充分学习最新的特性。下面是我这段时间阅读代码的特殊用法的一些总结。 首先我们来说说PHP中的语法糖,在复杂的PHP应用中,一般都趋向于使用M...2011-07-07 10:46:35 · 235 阅读 · 0 评论 -
Make code sweet.PHP特殊用法的一些总结(2)--PHP中的‘callback’回调
本章总结一下PHP中‘callback’的一些实用用法。1. 什么是callback? 首先简单的介绍一下‘callback’,俗称‘回调’,是一种将一段可执行代码作为参数传递以供另一个函数调用的行为,回调在不同语言有不同的实现方式,几乎现在所有的主流语言都支持这个特性,我总结实现callback的主要方式有两种:1.以C++、C#等静态语言为主的通过函数指针方式实现回调...2011-07-11 17:26:34 · 112 阅读 · 0 评论 -
PHP简单的伪静态URL机制实现
曾几何时,我们公司准备开发一套新的建站系统,决定将以前的框架给KO掉,重新开发一套新的框架来适应新的系统功能。领导们不希望使用外面已有的框架,号称要开发有自己特色的框架(不懂开发的领导害死人)。于是我们又投入到了新的开发当中。 由于我们的系统支持伪静态,以前的系统是直接使用服务器apache或IIS自带的rewrite文件定义规则,而框架中没有任何路由机制,于是这次框架准备使用新的策...2011-12-29 17:19:36 · 631 阅读 · 0 评论 -
PHP高效获取树结构信息
在开发中,经常有一些简单的树形结构的存储,比如产品的多级分类,多级导航栏菜单等,这些物体有一个特性,就是通常会获取整棵树结构。在数据库里保存树结构的方法主要有三种,最简单的一就是通过一个father_id指向当前结构的父节点。对于这样的小结构,一般我们使用最简单的方式存储。 当要获取整棵树结构,网上一般用递归法,这种方式代码简单易懂,但是缺点是需要执行多次数据库查询,而且后面几次获取的元...2011-12-30 11:26:09 · 454 阅读 · 0 评论 -
放弃繁琐的配置!直接使用UglifyJS批量压缩目录下所有JS文件
JS代码压缩是一种十分常见的前端优化的手段,对于大量使用JS的Web应用,代码压缩可以是极大的减少代码的大小,加快传输效率,提高浏览的体验。 而在所有的JS压缩工具中,UglifyJS在不改变JS语义前提下可以提供最好的压缩率,其优异的性能而广为称颂,而与它性能相对应的是复杂的运行环境,你需要安装nodejs、然后使用npm安装UglifyJS类库,最后还要编写js...My...原创 2012-10-18 08:47:50 · 3211 阅读 · 0 评论 -
神奇的Apache Rewrite,程序员使用Rewrite的一些体会
最近在公司开发工作中,一些功能使用了Apache Rewrite技术,我对这方面是一个菜鸟,在实践中边学边做,得到了一些经验和网上资料,来分享一下。 Apache是十分流行的开源软件,Apache Rewrite技术官方有着很详细的文档,关于Apache Rewrite技术是什么、如何使用等有着很详细的描述,下面有文档的中文版本: [url=http://lamp.linux...2012-02-15 11:42:39 · 149 阅读 · 0 评论 -
使用Javascript计算当前日期的周数(2)
最近我在CRM中做了一个日报,周报和月报的功能,于是对PHP时间的处理总结了一些门道,以后一一道来,今天先写一篇关于,记得以前写过一篇关于使用Javascript计算当前日期的周数的文章,里面写过一个方法用于计算和PHP中date('W')等同的周数,如今看来是不对的,如何不对,那就要讲到周数的计算方式了。 周数的计算一般分为两种:一种是简单直观的定义,就是以当年的1月1日...原创 2011-03-02 11:20:35 · 199 阅读 · 0 评论 -
PHP应用客户端传复杂参数,JSON vs jQuery.param
最近,我们的网站系统出现了问题,一个保存布局的功能时不时的失效,严重影响了项目的进度,于是我接下了这个问题,查看问题的所在。 于是我开始研究这段代码,服务器端和客户端,服务器端很简单,就是获取data参数,用json反序列化成一个数据结构然后处理,相反客户端js的代码写的很长,也比较乱。其实客户端的代码就是一个构造json字符串的过程,可能是出于效率的原因,原来的实...2011-06-17 11:26:55 · 110 阅读 · 0 评论 -
为PHP微软SQL Server驱动加入更好的ADODB支持
微软对PHP的支持力度很大,在IIS下加入了PHP支持,支持PHP访问.Net组件,更重要的是发布了原生的SQL Server驱动来帮助PHP程序使用SQL Server数据库做开发。 公司的CRM产品使用PHP开发,使用ADODB统一数据库连接层,当初开发时,只支持MySQL一种数据库,后来,我通过PHP内置的MS SQL驱动来帮助系统支持SQL Server数据库,由于使用了ADOD...2010-06-21 14:52:20 · 133 阅读 · 0 评论 -
用PHP开发CRM一年多小记
1. 我的开发历史 从我毕业起,我来到了现在的公司,他们是做CRM的,使用PHP开发的,是在vtiger CRM的基础上进行二次开发而成,老实说当初我并不了解PHP这门语言,稀里糊涂的就进入了这家公司,如今已经一年有余也。 对PHP学习是边做边学的,PHP的语法并不难学,我有Java和C的经验,大概一周的时间,我就开始帮着做客户提出的需求了。当时,公司开发的人很少,除了老板就是我了...原创 2010-09-07 17:10:18 · 632 阅读 · 0 评论 -
Fusion Chart使用‘%’字符的方法
今天使用Fusion Chart做报表,其中图型的标题为“可能性 (%)分布统计”,我在chart属性输入caption=‘可能性 (%)分布统计’,结果图形中只显示了‘可能性 (分布统计’这几个字,我懵了,为了显示%符号,我将‘%’改成‘%%’,没用。于是我开始在Google中搜索。 可是没有找到解决方法,于是开始查看Fusion Chart英文文档,终于,在Basic Trouble...原创 2010-09-09 16:04:34 · 137 阅读 · 0 评论 -
PHP的惰性加载和Iterator的使用
最近换了工作,改做建站软件了,我们公司建站软件的模板系统出了问题,提示内存超出最大值。内存的问题最简单的方法是修改php.ini提高memory_limit,但是随着模板数的不断增加,需要的内存又超出了上限,于是老大把这个问题让我看看,看我有什么好办法。我拿到这个问题,首先是看懂原有的代码思路,分析问题产生的主要原因,出问题的页面很简单,就是一个模板显示页面,每页显示16个模板,做分页处理,而...原创 2011-05-23 11:21:16 · 193 阅读 · 0 评论 -
使用Javascript计算当前日期的周数(第几周)
众所周知,PHP中可以使用date('W')函数获取特定日期的周数,而在Javascript中就没有这个简单的方法来直接获取了,在一个开发周报的模块中,有一个需求,根据用户选择的日期,自动生成周报标题,标题格式为:第XX周周报,其中,XX是用户选择日期的周数。 这个功能最容易想到的方法就是通过使用AJAX,而周数则是通过服务器计算,可是这个方法过于重量级了,用户每改变一次日期要连接一次服...2010-10-25 14:18:08 · 1998 阅读 · 0 评论 -
使用PHPExcel判别和格式化Excel中的日期格式
最近,在做一个导入功能,在系统中使用PHPExcel类库,读取上传的Excel文件,然后进行字段映射,最后将Excel内的数据导入到系统中。其中,关于日期格式的导入,使我犯了难。 首先,如何导入日期,因为PHPExcel中日期格式在获取时得到的是数字,并不是日期字符串,于是,网上就有许多代码,用于将Excel中获取的数字转换成PHP使用的Unix Time,其实不必这么麻烦。PHPExc...原创 2010-11-01 11:52:56 · 443 阅读 · 0 评论 -
10位顶级PHP大师的开发原则(转)
在Web开发世界里,PHP是最流行的语言之一,从PHP里,你能够很容易的找到你所需的脚本,遗憾的是,很少人会去用“最佳做法”去写一个PHP程序。这里,我们向大家介绍PHP的10种最佳实践,当然,每一种都是经过大师们证明而得出的。1. 在合适的时候使用PHP – Rasmus Lerdorf没有谁比PHP的创建者Rasmus Lerdorf明白PHP用在什么地方是更合理的,他于19...原创 2011-02-04 19:31:25 · 100 阅读 · 0 评论 -
HTTP 状态码总结
最近看一些公司的面试题,看见他们对HTTP 状态码这个问题都情有独钟,我细细一琢磨,猛然问我这么个问题,我也回答不出几个,于是也忍不住搜索一番,这才发现,原来这HTTP状态码也内有乾坤,数量很多,要我死记硬背,一来让你故意忘记,二来也没什么大用,于是我决定在对HTTP 状态码进行一番整理,从而可以便于查找和复习,而且,写一遍后,记得更加牢固了。 首先,HTTP 状态码是用以表示网页服务器HT...原创 2011-02-08 17:18:57 · 111 阅读 · 0 评论 -
PHP框架,伤不起啊,伤不起
自从Rails刮起了一阵框架风,其它语言群起响应,Java,Python,Scala,PHP,无论静态动态语言都出现了模仿Rails模式的框架出现,其中,PHP语言的框架生产力更是一流,主流的PHP框架就有超过5种,加上不出名的框架的话,我估计起码有20多种框架,可怕的数量!!PHP框架之路一直充满着争议,从PHP要不要用框架,到应不应该模仿Rails,却抵不上PHP框架的井喷式的增长,各类框...原创 2011-06-07 00:05:35 · 190 阅读 · 0 评论 -
PHP实现IP黑白名单过滤
需求来自一个运维的同事,对一个php文件执行进行IP过滤,不方便直接配置服务器,于是需要直接在php文件开头进行IP的过滤。 IP过滤规则,可以有如下形式: 1.完整的IP地址 如:192.168.0.1 2.某一段IP 如:192.168.0.* 。 运维可以自定义IP黑白名单,由多个IP过滤规则组成,保存在数组中。通过编写代码,实现IP黑白名...原创 2012-09-13 10:17:54 · 817 阅读 · 0 评论