201901-21 PHP实现微信扫码自动登陆与注册,参考实例 微信开发已经是现在phper必须要掌握的一项基本的技术了,其实做过微信开发的都知道微信接口非常的强大做起来也非常的简单,这里我们一起来看一个微信自动登陆注册的例子. 继续阅读 >
201612-29 PHP开发不可忽略这3点 最近发现很多的PHP程序员,尤其是学习还不是很久的,都不知道PHP的精华所在。Perl当年如何在商界出名?其强大的正则表达式。而PHP呢?他是一门从Unix下发展起来的语言,当然也就继承了Perl的很多特点,同时C的优点都有。快速、简洁、明了,尤其是C程序员,PHP是至爱。这里,我想来写一篇PHP的变量、数组应用技巧和PHP的正则表达式、PHP的模板应用。1、变量、数组的应用技巧(1)很多人用得不多的数组函数。foreach、list、each。分... 继续阅读 >
201610-07 PHP 中九大缓存技术总结 1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****Ob_end_clean();2、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块... 继续阅读 >
201608-24 php文件上传小技巧与后端处理 引语:在上一篇文章中说到,在页面中可以用隐藏的方式让你的上传页面看起来漂亮。但是这对于性能来说,并没有什么卵用,那么在后台的处理中,难道就没有一些处理技巧么?所谓后台的技巧,应该要包括上传得快一点,上传的文件大一点!那么,本文就来说说,后端处理都有些什么技巧吧!业务场景一、我们只会选择一个单个的文件上传,而且不需要做一些即时的验证工作。那么,也许并没有什么优化可言了,因为,最后你要做的,只是将这... 继续阅读 >
201607-27 PHP缓存技术的多种方法小结 1、普遍缓存技术:数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。 用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。 举个常用的方法,多表关联的时候,把附表中的... 继续阅读 >
201607-20 中级 PHP 知识点汇总 ——————————————————————————2.jQuery包括javascript框架和prototype.js框架选择器:1.基本选择器:①、$('#result')=jQuery('#result')=document.getElementById('result')<divid='result'><divclass='result'>②、class选择器$('.result')③、元素选择器$('div')2.子代选择器:$('#myform<input')3.后代选择器:$('#myforminput')4.组合... 继续阅读 >
201512-03 PHP 上传图片并压缩方法 推荐 使用到三个文件connect.php:连接数据库用test_upload.php:执行SQL语句用upload_img.php:上传图片并压缩用三个文件代码如下:connect.php<?php$db_host='';$db_user='';$db_psw='';$db_name='';$db_port='';$sqlconn=newmysqli($db_host,$db_user,$db_psw,$db_name);$q="setnamesutf8;";$result=$sqlconn->query($q);if(mysqli_connect_errno()){printf("Connectfailed:%s\n",mysqli_conne... 继续阅读 >
201511-30 PHP 实现异步数据调用 HOT 浏览器和服务器之间只有一种面向无连接的HTTP协议进行通讯的,面向无连接的程序的特点是客户端请求服务端,服务端根据请求返回相应的程序,不能保持持久连接。这样就出现了一个问题,一个客户端的相应服务端可能执行1秒也有可能执行1分钟,这样浏览器就会一直处于等待状态,如果程序执行缓慢,用户可能就没耐心关掉了浏览器。而有的时候我们不需要关心程序执行的结果,没有必要这样浪费时间和耐心等待,那我们就要想出办法让程序... 继续阅读 >
201511-13 几种php 删除数组元素方法 HOT 几种php删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素我必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法几种php删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素我必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法。在很... 继续阅读 >
201511-13 PHP数组操作详细解释 HOT 概述要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。像其他变量一样,使用运算符=可以改变数组元素的内容。数组单元可以通过array[key概述要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。像其他变量一样,使用运算符=可以改变数组元素的内容。数组单元可以通过array[key]语法... 继续阅读 >
201510-06 CentOS上搭建PHP服务器环境 推荐 方案一安装apache:yuminstallhttpdhttpd-devel启动apache:/etc/init.d/httpdstart此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口安装mysql:yuminstallmysqlmysql-servermysqlmysql-deve启动mysql:/etc/init.d/mysqldstart安装phpyumin... 继续阅读 >
201509-18 PHP 中「自增、自减」运算问题 在PHP的官方手册中写道:PHP支持C风格的前/后递增与递减运算符。第一个注意事:递增/递减运算符不影响布尔值。递减NULL值也没有效果,但是递增NULL的结果是1。换句话说:递增/递减运算中,不会把操作数转换成整数后再运算。如果运算数是布尔值,则直接返回结果。递增/递减布尔值:$a=TRUE;var_dump(++$a);//bool(true)$a=TRUE;var_dump(--$a);//bool(true)$b=FALSE;var_dump(++$b);//bool(false)$b=... 继续阅读 >
201508-19 PHP MySQL 预处理语句 预处理语句对于防止MySQL注入是非常有用的。预处理语句及绑定参数预处理语句用于执行多个相同的SQL语句,并且执行效率更高。预处理语句的工作原理如下:预处理:创建SQL语句模板并发送到数据库。预留的值使用参数"?"标记。例如:INSERTINTOMyGuests(firstname,lastname,email)VALUES(?,?,?)数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出执行:最后,将应用绑定的值传递给参数(... 继续阅读 >
201508-17 PHP:6种GET和POST请求发送方法 无论是畅言还是多说,我都需要从远程抓取文章的评论数,然后存入本地数据库。对于多说,请求的格式如下://获取评论次数,参数是文章IDfunctiongetCommCount($postid){ $jsondata=file_get_contents("http://api.duoshuo.com/threads/counts.json?short_name=i94web&threads=$postid");//设置true返回数组,不设置或者是false则返回对象$resjson=json_decode($jsondata,true);return$resjson['response'][$pos... 继续阅读 >
201504-25 PHP生成UTF-8编码的CSV文件用Excel打开乱码的解决办法 原因:是由于输出的CSV文件中没有BOM。什么是BOM?在UCS编码中有一个叫做”ZEROWIDTHNO-BREAKSPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZEROWIDTHNO-BREAKSPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符”ZEROWIDTHNO-BREAKSPACE”又被... 继续阅读 >
201504-20 提高PHP执行效率的50个技巧 1、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。2、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。3、$row['id']的速度是$row[id]的7倍。4、echo比print快,并且使用echo... 继续阅读 >
201504-18 详细的php.ini 配置文件 php5.2的配置文件详解,金步国的翻译作品,比较有参考意义,需要的朋友收藏了。;;;;;;;;;;;;;;;;;;;关于php.ini;;;;;;;;;;;;;;;;;;;;这个文件必须命名为’php.ini’并放置在httpd.conf中PHPINIDir指令指定的目录中。;最新版本的php.ini可以在下面两个位置查看:;http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co;http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co;;;;;;;;;;;;;; ... 继续阅读 >
201504-18 php判断一个请求是ajax请求还是普通请求的方法 推荐 /path/to/pkphp.com/script.php?ajax 在php脚本中使用如下方法判断: 代码如下: if(isset($_GET['ajax'])){ ...这是一个ajax请求,然后... } else{ ...这不是一个ajax请求,然后... } 通过传递_GET参数的方法简单实现了网页请求的判断。但是如果需要这样的功能,这个方法可能就有弊端,功能需求如下: 1.通过ajax请求的网页与普通请求的网页内容是不相同的 2.通过ajax请... 继续阅读 >
201504-15 PHP文件上传问题总结——文件大小检测以及大文件上传处理 由于涉及到本地和服务器两方面的安全问题,所以基于inputtype="file"形式的页面文件上传一直处于一个很尴尬的位置。一方面,用户不希望隐私泄露,所以浏览器无法对用户在上传时选择的文件做有效的判断。另一方面,为了服务器端的安全,减轻传输负担,系统又希望能在用户开始上传之前就将非法的文件拒之门外。一来一去,基于原始input方式的上传,成为网络存储网站避之唯恐不及的遗留性问题,也造就了现在千奇百怪的插件、上传客... 继续阅读 >
201504-12 PHP四种基本排序算法示例 许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初学者,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。1.冒泡排序思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。代码实现:$arr=array(1,43... 继续阅读 >
201503-26 常用设计模式之备忘录模式及其PHP实现 备忘录模式是一种行为型模式,它在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样可以在以后把该对象的状态恢复到之前保存的状态。主要角色备忘录(Memento)角色:存储发起人(Originator)对象的内部状态,而发起人根据需要决定备忘录存储发起人的哪些内部状态。备忘录可以保护其内容不被发起人(Originator)对象之外的任何对象所读取。发起人(Originator)角色:创建一个含有当前的内部状... 继续阅读 >
201503-26 常用设计模式之抽象工厂模式及其PHP实现 抽象工厂模式是一种创建型模式,它提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。它的实质是“提供接口,创建一系列相关或独立的对象,而不指定这些对象的具体类”。抽象工厂模式提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式中主要角色抽象工厂(AbstractFactory)角色:它声明创建抽象产品对象的接口具体工厂(ConcreteFactory)角色:实现创建产品对象的操作... 继续阅读 >
201503-26 常用设计模式之状态模式及其PHP实现 状态模式是一种行为型模式,它允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类,状态模式变化的位置在于对象的状态。主要角色抽象状态(State)角色:定义一个接口,用以封装环境对象的一个特定的状态所对应的行为具体状态(ConcreteState)角色:每一个具体状态类都实现了环境(Context)的一个状态所对应的行为环境(Context)角色:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。... 继续阅读 >
201503-26 常用设计模式之模板方法模式及其PHP实现 模板方法模式模式是一种行为型模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以在不改变一个算法的结构的情况下重定义该算法的某些特定的步骤。主要角色抽象模板(AbstractClass)角色定义一个或多个抽象方法让子类实现。这些抽象方法叫做基本操作,它们是顶级逻辑的组成部分。定义一个模板方法。这个模板方法一般是一个具体方法,它给出顶级逻辑的骨架,而逻辑的组成步骤在对应... 继续阅读 >