随笔分类 - PHP
摘要:恰当地使用多线程能够大大提升程序效率,本文对比多进程介绍了下多线程的优势和适用场景,提出了一种巧用方案,并使用 PHP 代码实现了多线程的常见用法。
阅读全文
摘要:websocket 作为 HTML5 里一个新的特性一直很受人关注,因为它真的非常酷,打破了 http “请求-响应”的常规思维,实现了服务器向客户端主动推送消息,本文介绍如何使用 PHP 和 JS 应用 websocket 实现一个网页实时聊天室。
阅读全文
摘要:回调函数、闭包在JS中并不陌生,JS使用它可以完成事件机制,进行许多复杂的操作。PHP中却不常使用,今天来说一说PHP中中的回调函数和匿名函数。
阅读全文
摘要:们都知道PHP是单进程执行的,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,但PHP实现多进程也意义重大,尤其是在后台Cli模式下处理大量数据或运行后台DEMON守护进程时,多进程的优势不用多说。
阅读全文
摘要:互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求)、数据完整性(没有被人修改过)、数据私密性(密文,无法直接读取)等。
阅读全文
摘要:接着完善自己的PHP框架,本次更新的主要内容有:
介绍了异常处理机制
完善了异常和错误处理
数据表跟Model类的映射
阅读全文
摘要:续言 对于本次更新,我想说: 本框架由本人挑时间完善,而我还不是PHP大神级的人物,所以框架漏洞难免,求大神们指出。 本框架的知识点应用都会写在博客里,大家有什么异议的可以一起讨论,也希望看博客的也能学习到它们。 本次更新,更新了函数规范上的一些问题,如将函数尽量的独立化,每一个函数尽量只单独做好一
阅读全文
摘要:前言 说到写PHP的MVC框架,大家想到的第一个词--“造轮子”,是的,一个还没有深厚功力的程序员,写出的PHP框架肯定不如那些出自大神们之手、经过时间和各种项目考验的框架。但我还是准备并且这么做了,主要是因为: 认为有关PHP的方方面面都了解了,但自己学习PHP的时间还短,基础并不扎实,很多常用函
阅读全文
摘要:前些天准备写一个自己的博客CMS,考虑PHP框架的时候想到了据说非常强大的yii,接触yii时发现有2.0版本,果断尝最鲜的。这么一尝试感觉入了坑了,yii2.0是2014年12月发布的,估计国内用的人比较少,资料比较少,遇到问题百度yii2.0查出来好多1.0版本的答案,只好去google看英文站...
阅读全文
摘要:传统数据库中,我们要操作数据库数据都要书写大量的sql语句,而且在进行无规则数据的存储时,传统关系型数据库建表时对不同字段的处理也显得有些乏力,mongo应运而生,而且ajax技术的广泛应用,json格式的广泛接受,也使得mongo更贴近开发人员。mongo简介及应用场景MongoDB是一个面向文档...
阅读全文
摘要:memcache虽然好用,解决了数据库遇到高并发时的IO问题,但还有很多问题丞待解决:1、数据持久性问题,memcache用内存进行存储,一旦memcache服务器宕机,那么所存储的数据全部丢失。2、memcache存储的数据类型单一,只支持key-value型的数据,要存储复杂类型的数据,必然需要...
阅读全文
摘要:在一个高并发的web应用中,数据库存取瓶颈一直是个大问题,一旦达到某个极限,数据库很容易崩溃,但是如果我们把常用的数据放到内存中,在需要的时候从内存中取,不光读取速度快,而且节约数据库IO。memcache简介Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的h...
阅读全文
摘要:前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库。我们都知道,PHP开发中,数据的增删改查是核心。为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对query语句进行优化。虽然我们对数据库的读取写入速度上却是无能为力,但在一些数据库类扩展像memc...
阅读全文
摘要:昨天想批处理以前下载的一堆文件,把文件里的关键内容用正则匹配出来,集中处理。在操作文件时遇到一个问题,就是windows操作系统中的编码问题。我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我们在开发过程中,IDE里的编码则是UTF-8,(这里不讨论为什么等等问题,只...
阅读全文
摘要:今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同时也希望有大神和细心的学习者找到我理解中出现的问题。什么是捕获组我们先看...
阅读全文
摘要:今天看到一道面试题,要写出一个可以创建多级目录的函数:我的第一个感觉就是用递归创建,具体思路如下:function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创...
阅读全文
摘要:今天来介绍PHP模拟发送POST请求的重型武器——cURL函数库的使用和其多线程的优化方法。说起cURL函数,可谓是老生常谈,但网上许多资料都在关键部分语焉不详,列出一大堆手册上的东西,搞得我入门时也万分痛苦,我翻了些资料,结合自己的笔记,总结了这篇博文,希望能给初次接触cURL的开发者提供一些帮助...
阅读全文
摘要:使用了笨重fsockopen()方法后,我们开始在PHP函数库里寻找更简单的方式来进行POST请求,这时,我们发现了PHP的文件函数也具有与远程URL交互的功能。 最简单的是fopen()和fread()函数。 然后是file_get_contents()函数: 但是,我们会发现,通这两种方式我们只
阅读全文
摘要:了解完了HTTP头信息和URL信息的具体内容,我们开始尝试自己动手写一段头信息发送到服务器。Windows内置命令Telnet可以帮助我们发送简单的HTTP请求。并且TELNET是一个特别灵活的工具,我们还可以用它进行FTP/SMTP/POP3/TCP等方式的简单请求。通过开始菜单--运行--CMD...
阅读全文
摘要:明白了HTTP请求的头信息后,我们还需要对请求地址有所了解。再者,HTTPGET请求是靠URL实现的,所以了解URL的构造,处理URL的重要性不言而喻。在PHP中我们用parse_url()函数来处理URL信息。其函数原型如下:arrayparse_url(string$url[,URL_COSTA...
阅读全文