201612-07 PHP 魔术方法详解 前言PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),获得一个类的成员变量时调用__set(),设置一个类的成员变量时调用__isset(),当对不可访问属性调... 继续阅读 >
201611-26 利用PHP 7中的OPcache来实现Webshell 在这篇文章中,我们将会对PHP7OPcache引擎中的安全问题进行讲解,而且还会给大家介绍一种新型的漏洞利用技术。通过这种攻击方法,我们可以绕过某些安全强化技术,例如禁止web目录的文件读写等安全保障措施。除此之外,攻击者还可以利用这种攻击技术在目标主机中执行恶意代码。OPcahceOPcache是PHP7.0中内嵌的新型缓存引擎。它可以对PHP脚本代码进行编译,并且将编译结果以字节码的形势存入内存中。OPcache通过将P... 继续阅读 >
201611-26 [译] 又一个升级到 PHP 7 后性能提升 50% 的案例:Tumblr 导读:PHP7发布有一段时间了,业界有一些公司已经尝试在线上大规模使用这个版本了。Tumblr也从PHP5升级到PHP7,他们碰到了什么问题,又是怎么处理的,PHP7这个版本又给Tumblr带来了什么?相关的经历对类似需求的团队会有很多启发。在Tumblr,我们一直在寻找新方法来提高网站的性能。这意味着在关键路径大量使用缓存,测试新的CDN配置或升级底层软件。最近,在团队的努力下,我们将整个Web服务器从P... 继续阅读 >
201611-23 前端学PHP之错误处理 前面的话错误处理对于程序开发至关重要,不能提前预测到可能发生的错误,不能提前采取恢复策略,可能导致较差的用户体验。本文将详细介绍PHP的错误处理[注意]关于javascript的错误处理机制移步至此错误报告PHP程序的错误发生一般归属于下列三个领域:1、语法错误语法错误最常见,并且也容易修复。如:代码中遗漏一个分号。这类错误会阻止脚本的执行2、运行时错误这种错误一般不会阻止PHP脚本的... 继续阅读 >
201610-07 PHP 中九大缓存技术总结 1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****Ob_end_clean();2、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块... 继续阅读 >
201609-16 10 件在 PHP 7 中不要做的事情 10件在PHP7中不要做的事情1.不要使用mysql_函数这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP7已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的PDO实现。2.不要编写垃圾代码这一条可能易于理解,但是会变得越来越重要,因为PHP7的速度提升可能会隐藏你的一些问题。不要仅仅满足于你的站点速度,因为迁移到PHP7才让它变快。为了理解速度有多... 继续阅读 >
201608-24 php文件上传小技巧与后端处理 引语:在上一篇文章中说到,在页面中可以用隐藏的方式让你的上传页面看起来漂亮。但是这对于性能来说,并没有什么卵用,那么在后台的处理中,难道就没有一些处理技巧么?所谓后台的技巧,应该要包括上传得快一点,上传的文件大一点!那么,本文就来说说,后端处理都有些什么技巧吧!业务场景一、我们只会选择一个单个的文件上传,而且不需要做一些即时的验证工作。那么,也许并没有什么优化可言了,因为,最后你要做的,只是将这... 继续阅读 >
201607-29 PHP转换emoji表情的几种处理方法 最近几个月做微信开发比较多,存储微信昵称必不可少可这万恶的微信支持emoji表情做昵称,这就有点蛋疼了一般Mysql表设计时,都是用UTF8字符集的。把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串。这是怎么回事呢?原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了。这要怎么办呢?我来介绍几种方法 1、使用utf8mb4字符集如果你的mysql版本>=5.5.3,你大可直接将utf8... 继续阅读 >
201607-27 PHP缓存技术的多种方法小结 1、普遍缓存技术:数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。 用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。 举个常用的方法,多表关联的时候,把附表中的... 继续阅读 >
201607-27 其实你距离PHP高级工程师只有一步之遥! 平静的心态要写一手好的程序,没有好的心态是不行的。遇事不可急躁,不可轻言放弃。在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排查问题的最初源泉,将其干掉。急躁的心态去开发系统是对项目的一种不负责。急躁会让人学会将就,让人学会逃避。这样的心态也会有助于你其他方面的处事能力。为什么将... 继续阅读 >
201607-27 PHP Array 函数 在php教程中数组是种强大的数据类型,他可以做的事情很多,可以存储不同的数据类型在一个数组中,下面我们列出了数组常用的操作,排序,键名对数组排序等做法。/*数组的常用函数 * * 数组的排序函数 * sort() * rsort() * usort() * asort() * arsort() * uasort() * ksort() ... 继续阅读 >
201607-27 PHP 与 Perl 语言对比 相同之处编译脚本语言:Perl和PHP二者都是脚本语言。这意味着他们不用提前独立执行生产原生可执行文件。语法:PHP的基本语法非常接近Perl的,并且二者都与C代码分享很多语法特性像空格、语句由分号终止和花括号将多条语句组织成代码块。函数调用开始于函数名,紧随后面的是包围在圆括号中并由逗号分隔的实际参数。$符号变量:所有变量在PHP中看起来像Perl标量变量:一个名称在一个$符号($... 继续阅读 >
201607-27 PHP 与 C 语言对比 比如第一次发现函数里还可以定义函数的时候,我就慌了还有引用传值的方式究竟是什么,变量的作用域,有的时候数组赋值还会给我惊喜.....这还不算把数据和程序混淆的真本领....很多人都说php和c语言语法很像,我怎么觉得差了那么多?用c语言写程序的时候起码我能想象,这个变量是在栈里,那块数据在堆里,为什么现在看不见这个变量,指针究竟意味着什么,只要我愿意,起码我是能看清楚的而我在用php写程序的时候,一切都是那么的飘... 继续阅读 >
201607-26 PHP 常用函数汇总 一、写入文件1.打开资源(文件)fopen($filename,$mode)2.写文件fwrite($handle,$str)3.关闭文件fclose($handle)4.一步写入file_put_contents($filename,$str,$mode)FILE_APPENDLOCK_EX}二、读文件1.读文件fread($handle,字节数) 2.读一行fgets($handle);3.读一个字符fgetc($handle)4.读成一个数组中file($filename)5.一步读取file_get_contents($filename)三、目录操作1,建目录mkdir($dirname)2,删除目录rmdir($dirname... 继续阅读 >
201607-26 PHP代码注释小细节 代码注释,可以说是比代码本身更重要。告诫新人,一定要养成写注释的习惯,否则只能是损人不利己。这里有一些方法可以确保你写在代码中的注释是友好的,总结起来就是"5要与3不要"一、不要重复阅读者已经知道的内容(×)一些光看方法名,光看代码就能看出来功能的就没必要写注释,//Ifthecolorisred,turnitgreenif(color.is_red()){ color.turn_green();}二、要注释说明推理和历史(√)如果代码中的业务逻辑... 继续阅读 >
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.组合... 继续阅读 >