标签PHP下的文章

Jerry Bendy 发布于 01月09, 2014

CI获取当前连接数据库信息的方法

用过CI(CodeIgnter)的都知道CI有一个内置的Config系统,用来获取设置项,但这个设置只对$config['xxx']这样的操作有效,对数据库是无效的。在数据库操作中为了使程序更具灵活性往往会给数据表设置一个前缀,如“wp_”,为了程序的扩展性我们不可能在SQL中把数据表前缀写死,CI的数据库选项有这样一行:$db['default']['dbprefix']='test_';因为不是$config['xxx']这样的变量,再使用$this->config->item('dbprefix');这样的形式就无法取得前缀,查阅CI的文档也没找到...

阅读全文 »

Jerry Bendy 发布于 01月02, 2014

使用PHP获取网站Favicon的方法

最近做一个Tab需要在网站名旁边显示网站的Favicon以提高显示效果,如图:开始做的时候想到的是利用Google的方式来获取,使用“http://www.google.com/s2/favicons?domain=网址”的方式可以直接获得网站的Favicon图标并以16*16大小图片的形式显示出来,这个方法简单方便,但在有些网络环境下却会出现图片无法显示的问题(需要翻墙),为了解决这个BUG我决定重新写一个获取Favicon的函数,使用自己的服务器以避免翻墙。实际效果请参见示例:http://favicon.byi.pw/?url=blog.icewingcc.com如果不想自己写方法的话也可以使用我提供的接口...

阅读全文 »

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月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 发布于 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

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(){...

阅读全文 »

Jerry Bendy 发布于 10月14, 2013

jQuery+Ajax+PHP实现“喜欢”评级功能代码

本文章来给大家介绍一个jQuery+Ajax+PHP实现“喜欢”评级功能代码,用户点击页面中自己喜欢的图片上的红心按钮时,前端页面向后台发送一个ajax请求,后台PHP程序接收请求后,查询IP库中是否已经有该用户的点击记录,如果没有,则将对应的数值+1,同时将该用户IP信息写入IP库,反之则告诉用户已经“喜欢过了”。数据库设计先准备两张表,pic表保存的是图片信息,包括图片对应的名称、路径以及图片“喜欢”总数,pic_ip则记录用户点击喜欢后的IP数据。CREATETABLEIFNOTEXISTS`pic`(`id`int(11)NOTNULLAUTO_INCREMENT,`pic_name`varchar(60...

阅读全文 »

Jerry Bendy 发布于 09月28, 2013

PHP的一点小知识(2)

继续前天的写吧。16、在变量名后面加括号“()”,系统会自动查找与变量值同名的函数并执行,这个与可变变量有些相似,如:<?php$a="func_a";functionfunc_a(){return0;}$a();//这里使用变量名加插号就相当于调用与a的变量值同名的函数17、可以在函数体内嵌套定义函数,被嵌套的函数是不公开的,并且只在父函数体内有效;18、PHP中可以使用nl2br()函数把字符串中的换行符自动输出为“”,如:<?php$string="这是第一行\n这是第二行";echonl2br($string);/**********输出:这是第一行这是第二行************HTML这...

阅读全文 »

Jerry Bendy 发布于 09月26, 2013

PHP的一点小知识(1)

最近在看PHP的教学视频,在里面整理了一些有用的或者容易忽略的小知识,在这里随便写下。1、纯PHP代码的文件可以省略结尾的“?>”标记,这样可以避免代码后面额外输出空格;2、在单引号中的字符串时面的变量和转义序列不会被替换,而双引号中的会;3、当字符串用双引号或heredoc结构定义时,其中的变量将会被正常解析;4、PHP可以使用中文作为变量名,字符串插入变量时如果变量后面没有空白或符号分隔的话就需要把变量用大括号“{}”括起来,如:string="这是一个变量{$val}哦!";5、手动将页面跳转到404页的方法:header('HTTP/1.1404NotFound'...

阅读全文 »