201501-30 PHP汉字转换为拼音的类 很多时候,我们需要实现把中文直接转换成拼音的功能,比如“中华人民共和国”,我们要把它转化成“zhonghuarenmingongheguo”,那该怎么转批呢?用下面这个类就很好操作了,目前该类支持GB2312和UTF-8编码,但值得注意的是文件的编码必须与转化的编码一致,不然会产生错误,这个问题以后有机会再完善。<?phpfunctionPinyin($_String,$_Code='gb2312'){$_DataKey=... 继续阅读 >
201501-30 PHP使用原生函数实现文件上传及下载 文件上传:if($_FILES&&$_FILES['attachment']&&$_FILES['attachment']['tmp_name']){$filesize=$_FILES['attachment']['size'];//文件上传大小限制:5Mif($filesize>5*1024*1024){exit('上传文件大小超出限制!');}//文件保存目录,如果不存在则创建之$uploaddir=ROOT_DIR.'/public/attachment/notice/';if(!file_exists($uploaddir))mkdir($uploaddir,0755,true);... 继续阅读 >
201501-30 PHP如何将session保存到memcached中?如何分布式保存PHP session session_set_save_handler无关的memcached保存session的方法在memcached服务器上1)下载memcached#wgethttp://memcached.googlecode.com/files/memcached-1.4.15.tar.gz2)由于memcached依赖libevent所以需要先安装libevent库,这里直接yum安装#yuminstall*libevent*3)安装memcached#./configure--prefix=/usr/local/memcached#make#makeinstall4)启动memcached#/usr/local/memcached/bin/memcached-d-m4096-p1... 继续阅读 >
201501-30 PHP输入流php://input的使用分析 在做一个摄像头拍照然后上传的功能,php中使用php://input来获取内容。于是就了解了下php://input。从官网信息来看,php://input是一个只读信息流,当请求方式是post的,并且enctype不等于“multipart/form-data”时,可以使用php://input来获取原始请求的数据。看一个简单的例子。客户端就是一个表单,非常简单。<formaction=""method="POST">name:<inputtype="text"name="name"value="tom"/><br/>age:<in... 继续阅读 >
201501-30 PHP完美分页类 <?phpclassPage{private$total;//数据表中总记录数private$listrows;//每页显示行数private$limit;private$uri;//自动获取url请求地址private$pageNum;//总页数private$config=array('header'=>'条记录','prev'=>'上一页','next'=>'下一页','first'=>'首页','last'=>'尾页');publicfunction__construct($total,$listrows=10,$pa=""){$this->total=$total;$this->listrows=$listrows;$this-... 继续阅读 >
201501-30 PHP通过淘宝API接口查询客户端地址 <?php/*通过淘宝API接口查询客户端地址调用淘宝的API接口http://ip.taobao.com/service/getIpInfo.php?ip=ip地址*/$ip=get_ip_data();functionget_ip_data(){$ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip());$ip=json_decode($ip);if($ip->code){returnfalse;}$data=(array)$ip->data;return$data;}//取客户端ipfunctionget_client_ip(){if(isset($_SERVE... 继续阅读 >
201501-29 PHP开发环境下载、集成环境下载 PHP5.6.2稳定版本FORphp-5.6.2.tar.bz2FORphp-5.6.2.tar.gzFORphp-5.6.2.tar.xzPHPChina发布的PHP版本均为稳定版本,如需下载测试版本请登录php.net开发环境下载ApacheMySQLPHPApache官方网站Apache下载地址列表... 继续阅读 >
201501-27 维护老代码中的那些坑 最近在给以前的老项目维护,说起来工作很简单,一个字:改Bug。这看起来平淡无常的工作,实际上凶险无比,藏坑无数。时至今日,感觉整个人都得到了升华。在睡觉前抽空写篇博客,和各位分享一下踩坑经历,一起品味其中的种种酸苦辣(没甜)。为保证个码隐私,文中代码均为化名,还望谅解。如有雷同,纯属巧合(可以通过 gitblame 查看是谁写的)。第一回:变量命名没点数,有时写着还手误如果要折磨一个强... 继续阅读 >
201501-27 PHP程序员简历模板 联系方式(HR会打印你的简历,用于在面试的时候联系,所以联系方式放到最上边会比较方便)手机:135********(如果是外地手机,可注明。如经常关机,要写上最优联系时间)Email:xxx@gmail.com(虽然我觉得QQ邮箱无所谓,不过有些技术人员比较反感,建议用G)QQ/微信号:6*******(提供一个通过网络可以联系到你的方式)个人信息xxx/男/1990本科/家里蹲大学计算机系工作年限:3年微博:@xxx(如果... 继续阅读 >
201501-27 PHP依赖管理工具Composer入门教程 Composer是PHP的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。依赖管理Composer不是一个包管理器。是的,它涉及"packages"和"libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。这种想法并不新鲜,Composer受到了node'snpm和ruby'sbundler的强烈启发。而当时P... 继续阅读 >
201501-27 PHP使用mb_substr()解决中文字符串截取乱码问题 PHP自带几种字符串截取函数,其中常用到的就是substr和mb_substr。前者在处理中文时,GBK为2个长度单位,UTF为3个长度单位,后者指定编码后,一个中文即为1个长度单位。mb_substr用法stringmb_substr(string$str,int$start[,int$length[,string$encoding]]);mb_substr执行一个多字节安全的substr()操作基础上的字符数。从str的开始位置计算。第一个字符的位置为0。第二个字符的位置是1,依此类推:str被截... 继续阅读 >
201501-27 PHP中巧用curl 并发减少获取第三方网页内容时间 前言:在我们平时的程序中难免出现同时访问几个接口的情况,平时我们用curl进行访问的时候,一般都是单个、顺序访问,假如有3个接口,每个接口耗时500毫秒那么我们三个接口就要花费1500毫秒了,这个问题太头疼了严重影响了页面访问速度,有没有可能并发访问来提高速度呢?今天就简单的说一下,利用curl并发来提高页面访问速度,希望大家多指导。1、老的curl访问方式以及耗时统计<?phpfunctioncurl_fetch($url,$timeout=3){... 继续阅读 >
201501-27 libpng版本问题导致的PHP调用gd扩展出错解决方案 写一个测试gd的脚本test.php,然后在命令行执行,报错信息如下:phptest.phplibpngwarning:Applicationwascompiledwithpng.hfromlibpng-1.5.6libpngwarning:Applicationisrunningwithpng.cfromlibpng-1.2.49libpngerror:Incompatiblelibpngversioninapplicationandlibrary[read_png_file]png_create_read_structfailed很纳闷,在编译gd、php的时候,已经指定了png的位置–with-png-dir=/usr/local/li... 继续阅读 >
201501-27 利用XDebug分析PHP程序,找出性能瓶颈 经济学中有一条著名的80-20定律,引用到编程中,就是:80%的性能瓶颈是由20%的代码引起的。借助PHP的XDebug扩展,可以有效地找出这20%的代码。一、安装配置1、下载PHP的XDebug扩展,网址:http://xdebug.org/2、在Linux下编译安装XDebugtar-xzfxdebug-2.0.0RC3.gzcdxdebug-2.0.0RC3/usr/local/php/bin/phpize./configure--enable-xdebugcpmodules/xdebug.so/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429... 继续阅读 >
201501-27 PHP中设置session的生命周期 PHP中,Session变量保存在服务器端(默认以文件格式保存),而SessionID以cookie形式保存在客户端。销毁session的方法有两种:第一种是通过程序session_destory()方法清除所有sessionunset(session['x'])来清除指定的session['x']。第二种是通过关闭浏览器关闭后会直接清除所有session。在Cookie没有禁用的情况下,sessionID是保存在Cookie中的。想要改变session生命周期,可以通过设置Cookie中sessionID的有效时间来实现。... 继续阅读 >
201501-27 常见 PHP ORM 框架与简单代码实现 对象关系映射(ObjectRelationalMapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。ORM提供了所有SQL语句的生成,代码人员远离了数据库概念。从一个概念需求(例如一个HQL)映射为一个SQL语句,并不需要什么代价,连1%的性能损失都没有。真... 继续阅读 >