随笔分类 - PHP
摘要:1.PHP-FPM是阻塞模型,假设你用 php-fpm,你的 php 程序中需要向外部提供接口请求。那么每一个 Worker 进程在执行这些网络 I/O 的时候,是不是都阻塞了?假设你的 php-fpm 最大进程数有 500 个,那么同时进来了 500 个请求,是不是都阻塞在了网络 I/O 上了?那
阅读全文
摘要:基本原理 Zend/Opcode/Extensions PHP有两大类模块:Zend引擎、扩展层 1. Zend引擎将PHP源文件 解释为一系列操作码(opcode), 然后循环 执行操作码; 2. 扩展层是一组函数、类库和流,PHP使用它们来执行一些 特定功能的操作,例如数据库功能、网络功能。
阅读全文
摘要:1.CGI是什么? 是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现
阅读全文
摘要:1.控制反转(Inversion of Control,缩写为IoC) 是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反
阅读全文
摘要:下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的 创建一个excel $objPHPExc
阅读全文
摘要:方法一: 思路 用正则去匹配关键字,把关键字用别的字符替换: $str = "/你大爷|你麻痹|什么玩意|SB|你他妈/"; // 关键字正则字符串 $string = "你他妈干什么玩意了 SB"; // 文本字符串 echo preg_replace($str, "*", $string); /
阅读全文
摘要:单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十
阅读全文
摘要:1.google开放api; 2.php类库PHP QR Code; 3.libqrencode; 4.QRcode Perl CGI & PHP scripts
阅读全文
摘要:1.json_decode() json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json 待解码的 jso
阅读全文
摘要:ArrayAccess是PHP的类,可以把对象当成数组来使用访问。 Config.php 配置类 <?php namespace IMooc; class Config implements \ArrayAccess { protected $path; protected $configs = a
阅读全文
摘要:PHP里面最强大的工具,就是数组,它融合了多种数据结构的特点,数组、队列、栈、哈希表等等,而且容器可以兼容各种类型,任意嵌套,简直无所不能。围绕着数组,PHP原生支持了一些列的函数,使得数组在实际编程实践中,可以有更强的表达能力和更高的编程效率。但是这要求我们用PHP的方式去思考,尽量使用PHP原生
阅读全文
摘要:这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子: 1 class ClassA{ 2 public function __construct(){ 3 echo “ClassA load succe
阅读全文
摘要:关于spl_autoload_register()和__autoload(),相信大多数都会选择前者了? 看两者的用法: 代码如下: 1 //__autoload用法 2 function __autoload($classname) 3 { 4 $filename = "./class/".$cl
阅读全文
摘要:我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦。 那么如何规避这中重复提交表单的现象出现呢?我们可以从很多方面入手: 1.从前端做限制。前端JavaScript在
阅读全文
摘要:今天在开发时碰到一种方法,就是客户要求页面不缓存,查了一下得出如下几种不让页面缓存的办法: html:只要加在头部就可以了. 代码如下: 1 <HEAD> 2 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 3 <META HTTP-EQUIV="Cach
阅读全文
摘要:在 PHP中,经常会对用户身份进行认证。本文意在讨论对密码的处理,也就是对密码的加密处理。 1.MD5 相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的: 1 $password = md5($_POST["password"]); 上面这段代码是
阅读全文
摘要:1.Md5加密和Crypt都是单向加密: 登陆时把登录密码转为md5值,然后和数据库中的进行比较。 其中crypt中的盐值支持多种: 以CRYPT_STD_DES是以/0-9A-Za-z/中的两个字符为盐值,如果是以CRYPT_MD5中以$1$开始的12个字符的字符串盐值 例如:crypt('imo
阅读全文
摘要:1.header() 函数向客户端发送原始的 HTTP 报头。 认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题): 要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不
阅读全文
摘要:一维数组排序可以使用asort、ksort等一些方法进程排序,相对来说比较简单。二维数组的排序怎么实现呢?使用array_multisort和usort可以实现 例如像下面的数组: $users = array( array('name' => 'tom', 'age' => 20) , array
阅读全文
摘要:使用场景:城市列表等根据首字母排序的场景 1 function getFirstCharter($str) 2 { 3 if (empty($str)) { 4 return ''; 5 } 6 $fchar = ord($str{0}); 7 if ($fchar >= ord('A') && $
阅读全文
浙公网安备 33010602011771号