
PHP
文章平均质量分 66
小烟
昔我往矣,杨柳依依;今我来思,雨雪霏霏....
展开
-
php-fpm 启动参数及重要配置详解
约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm的启动参数12345678910111213转载 2016-02-17 15:59:00 · 817 阅读 · 0 评论 -
PHP 5.5 新特性
1 生成器 yield关键字yield的中文文档在这里:http://php.net/manual/zh/language.generators.overview.php查看文档,能知道yield的一个功能就是能有效的降低迭代的内存开销。比如官网的这个xrange例子:123456789转载 2014-04-08 12:59:49 · 801 阅读 · 0 评论 -
PHP判断中文字符串的长度和字节长度
PHP对中文字符串的处理一直困扰于刚刚接触PHP开发的新手程序员。下面简要的剖析一下PHP对中文字符串长度的处理:PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节。例:$enStr = 'Hello,China!';echo strlen($enStr); // 输出:12而中文则不然,做中文转载 2014-03-06 11:34:40 · 3058 阅读 · 0 评论 -
PHP导出Excel的类库—PHPExcel,支持附带图片
PHP导出Excel比较简单的办法有:一、直接通过PHP的header来导出Excel。view sourceprint?01.header("Content-type:application/vnd.ms-excel");02.header("Content-Disposition:attachment;filename=excel_dat转载 2014-01-26 14:59:14 · 1361 阅读 · 0 评论 -
php源码之strip_tags
php strip_tags实现的c源码函数声明:/php5/ext/stardard/php_string.h函数原型:/php5/ext/stardard/string.c/* {{{ proto string strip_tags(string str [, string allowable_tags]) Strips HTML and PHP tags from a原创 2013-12-26 12:02:26 · 2078 阅读 · 0 评论 -
PHP数据过滤
1、php提交数据过滤的基本原则 1)提交变量进数据库时,我们必须使用addslashes()进行过滤,像我们的注入问题,一个addslashes()也就搞定了。其实在涉及到变量取值时,intval()函数对字符串的过滤也是个不错的选择。2)在php.ini中开启magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc可以把get,pos转载 2014-01-07 16:05:54 · 2211 阅读 · 0 评论 -
]PHP中文URL编解码(urlencode()rawurlencode()
PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。下面是详细解释:///\\\ string urlencode ( string str) 返回字符串,此字符串中除了 -_.转载 2013-12-17 14:45:43 · 1016 阅读 · 0 评论 -
支付宝外部商家接口中的return_url和notify_url
return_url: 1、同步返回接口,作为参数传递给支付宝 2、用户付款成功后,从支付宝跳转到这个页面 3、在这个页面中加入相关业务处理,比如更新记录,标记付款成功信息。 4、需要对支付宝传递过来的签名进行认证。 5、用来展现成功付款信息给前台付款用户。 6、支付宝那边只返回一次。 notify_url: 1、异步通知接口,作为参数传递给支付宝。 2、如原创 2013-12-13 13:43:35 · 4516 阅读 · 2 评论 -
php://input 和 $_POST的区别
这是手册里写的总是产生变量包含有原始的 POST 数据。否则,此变量仅在碰到未识别 MIME 类型的数据时产生。不过,访问原始 POST 数据的更好方法是 php://input。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。 问题: $HTTP_RAW_POST_DATA == $_POST 吗原创 2013-12-05 09:51:46 · 1303 阅读 · 0 评论 -
php const和define的区别(php类中如何定义常量)
大家都知道define是定义常量的,如果在类中定义常量呢?当然不能用define,而用const,如下例:<?php//在类外面通常这样定义常量define("PHP","phpddt.com");class MyClass{ //常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号 const constant = 'constant value';原创 2013-11-30 23:02:29 · 4326 阅读 · 0 评论 -
php正则表达式笔记
描述字符串排列模式的一种自定义语法规则如果可以使用字符串函数处理的任务 就不要使用正则正则表达式 就是通过构建具有特定规则的模式,与输入的字符信息比较 在进行 分割 匹配 查找 替换 等工作正则表达式 也是一个字符串由具有特殊意义的字符串组成的字符具有一定的编写规则 也是一种模式 可以把正则表达式看做是一种编程语言(是用一些特殊字符按照规则 编写出一个字符串 然后形原创 2012-10-09 21:19:17 · 2918 阅读 · 1 评论 -
MVC是一种用于表示层设计的复合设计模式
它们之间的交互有以下几种: 1.当用户在视图上做任何需要调用模型的操作时,它的请求将被控制器截获。 2.控制器按照自身指定的策略,将用户行为翻译成模型操作,调用模型相应逻辑实现。 3.控制器可能会在接到视图操作时,指定视图做某些改变。 4.当模型的状态发生改变时,将通过某种方式通知视图。 5.视图可以从模型获取状态,从而改变自己原创 2013-09-02 15:05:25 · 1381 阅读 · 0 评论 -
使用Curl进行抓取远程内容时url中文编码问题
PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。下面是详细解释:1string urlencode( string str)原创 2013-09-06 16:12:10 · 5292 阅读 · 1 评论 -
php位运算的应用-权限控制
在实际应用中可以做用户权限的应用我这里说到的权限管理办法是一个普遍采用的方法,主要是使用到”位运行符”操作,& 位与运算符、| 位或运行符。参与运算的如果是10进制数,则会被转换至2进制数参与运算,然后计算结果会再转换为10进制数输出。它的权限值是这样的2^0=1,相应2进数为”0001″(在这里^我表示成”次方”,即:2的0次方,下同)2^1=2,相应2进数为”0010″转载 2013-08-30 17:34:25 · 870 阅读 · 0 评论 -
is_uploaded_file函数引发的问题
起因 :在一个项目中,接到用户反馈说其所有客户不能上传文件,都返回失败。经过排查发现是PHP中的is_uploaded_file函数在 捣鬼。细节分析 :在正常情况下,通过PHP 上传文件 ,需要通过is_uploaded_file函数来判断文件是否是通过 HTTP POST 上传的,这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如 /etc/passwd。原创 2013-09-05 23:37:50 · 1713 阅读 · 0 评论 -
MySQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。转载 2013-08-06 15:35:00 · 748 阅读 · 0 评论 -
关于IE下面iframe跨域 cookie丢失的问题
对于IE来说(默认安全级别下 IE9以下 IE9以上没这个问题),iframe、img、link等标签都是只发送session cookie(又叫 第一方cookie),拦截本地cookie发送(又叫第三方cookie)。当这些标签跨域引用一个页面,实际上是发起了一次GET请求。如果这个跨域的请求,HTTP返回头中带有Set-Cookie , 那么这个cookie对浏览器来说,原创 2013-07-23 10:38:40 · 6029 阅读 · 0 评论 -
PHP之ArrayAccess接口实例代码介绍
interface ArrayAccessboolean offsetExists($index)mixed offsetGet($index)void offsetSet($index, $newvalue)void offsetUnset($index)下面的例子展示了如何使用这个接口class UserToSocialSecurity implements A转载 2014-05-09 10:23:31 · 914 阅读 · 0 评论 -
PHP 5.3.0以上推荐使用mysqlnd驱动
1.什么是mysqlnd驱动?PHP手册上的描述:MySQL Native Driver is a replacement for the MySQL Client Library (libmysql). MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0. mysqld转载 2014-05-24 22:51:01 · 2091 阅读 · 0 评论 -
RabbitMQ的原理与操作示例
AMPQ协议为了能够满足各种消息队列需求,在概念上比较复杂。首先,rabbitMQ启动默认是没有任何配置的,需要客户端连接上去,设置交换机等才能工作。不把这些基础概念弄清楚,后面程序设计就容易产生问题。1.vhosts : 虚拟主机。一个RabbitMQ的实体上可以有多个vhosts,用户与权限设置就是依附于vhosts。对一般PHP应用,不需要用户权限设定,直接使用默认就存在的"转载 2015-12-09 18:03:37 · 6847 阅读 · 1 评论 -
RabbitMQ 入门二(hello world)
经过上节的安装以及简单配置,RabbitMQ已经跑起来了,接下来就到我们的代码实验环节了。 话不多说,开始搞起。 打开RabbitMQ 的官网,http://www.rabbitmq.com/tutorials/tutorial-one-php.html ,根据提示我们先安装RabbitMQ的php客户端,这里的安装我们要用到php的包管理工具 composer.原创 2015-11-30 19:05:37 · 674 阅读 · 0 评论 -
RabbitMQ 入门四(Publish/Subscribe)
这次我们将完成一个基于Publish/Subscribe的应用场景。 首先我们得知道Exchange的三种类型:direct, fanout,topic。direct是直接模式,会将消息传递给我们所定义的唯一queue中,fanout就是广播模式,会将所有的Message都放到它所知道的queue中,topic是主题模式,将路由键和某模式进行匹配,发给对应的queue中,我们这原创 2015-12-09 17:33:12 · 767 阅读 · 0 评论 -
RabbitMQ 入门三(Work Queues)
上次我们简单的实现了发送与接收消息,接下来我们将学习更高级的用法。假如现在有这样的一个应用场景,有大量的密集计算需要后台去完成,单一的进程速度稍慢,这时候我们就需要多进程去协作完成了。现在我们建一个名为producer2.php的文件,用来发送消息,内容如下。接下来我们再来建立一个名为concumer2.php的文件,用来接收消息,内容如下。原创 2015-11-30 19:21:27 · 926 阅读 · 0 评论 -
php性能分析工具工具xhprof的安装与使用
下载源码包的网址 http://pecl.php.net/package/xhprof上面说了,每个版本适用的php版本。一、这是一个php扩展的形式。我们安装gd2,curl都是php的扩展形式。只不过有的时候编译的时候就安装进去了。像操作mysql数据库,也是一个mysql.so这样的扩展,安装了扩展,就能调用mysql_query()这些函数。要操作o转载 2015-12-09 18:12:02 · 3235 阅读 · 0 评论 -
RabbitMQ消息队列在PHP下的应用
消息队列的实现中,RabbitMQ以其健壮和可靠见长.公司的项目中选择了它作为消息队列的实现.关于MQ的机制和原理网上有很多文章可以看,这里就不再赘述,只讲几个比较容易混淆的问题1,binding key和routing key binding key和routing key是都不过是自己设置的一组字符,只是用的地方不同,binding key是在绑定交换机和队列时候通过方法传递转载 2015-12-09 17:45:49 · 7966 阅读 · 2 评论 -
php5.3 安装xdebug2.1.2
xdebug下载列表 http://xdebug.org/download.php 注 php5.3 不能安装高版本的xdebug 会提示 某个ZEND变量没未定义 我安装的 xdebug2.1.2####################安装##########################################tar zxvf xdebug-2.原创 2015-06-30 17:18:23 · 748 阅读 · 0 评论 -
PHP快速读取CSV大文件
CSV大文件的读取已经在前面讲述过了,但是如何快速完整的操作大文件仍然还存在一些问题。1、如何快速获取CSV大文件的总行数?办法一:直接获取文件内容,使用换行符进行拆分得出总行数,这种办法对小文件可行,处理大文件时不可行;办法二:使用fgets一行一行遍历,得出总行数,这种办法比办法一好一些,但大文件仍有超时的可能;办法三:借助SplFileObject类,直接将指原创 2015-06-26 16:32:58 · 8090 阅读 · 2 评论 -
一个高效的敏感词过滤方法(PHP)
$badword = array( '张三','张三丰','张三丰田' ); $badword1 = array_combine($badword,array_fill(0,count($badword),'*')); $bb = '我今天开着张三丰田上班'; $str = strtr($bb, $badword1); echo $str; $hei=arra原创 2015-04-14 23:14:40 · 4091 阅读 · 0 评论 -
php5.3以后不支持类名做构造方法,命名空间 加自动引入无法触发类名构造方法
今天写代码遇到了一个诡异的问题,搞了好久才发现居然是命名空间造成的。php版本 5.6.3起因项目用了命名空间,通过命名空间 设置 spl_autoload_register (自动引入) 来加载类。但是加载了一个解密类时不管怎么调试 都无法解密出数据。分析尝试了很多次,一开始以为是框架问题。因为把加密类单独拿出来做测试时可以得到解密的字符串的。后来分原创 2015-01-20 00:02:11 · 1989 阅读 · 0 评论 -
php 5.3新增的闭包语法介绍function() use() {}
<?php function callback($callback) { $callback(); } //输出: This is a anonymous function./n //这里是直接定义一个匿名函数进行传递, 在以往的版本中, 这是不可用的. //现在, 这种语法非常舒服, 和javascript语法基本一致, 之所以说基本呢, 需要继续向下看 /转载 2014-12-16 12:04:09 · 733 阅读 · 0 评论 -
php新版本废弃 preg_replace /e 修饰符
最近服务器php版本升级到了 5.6 发现出了很多警告 preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead一开始没注意,后来发现 很多这样的警告,于是网上查了下 发现 php5.5版本以上 就废弃了 preg_replace 函数中 /e 这个修饰符 /e 这个修饰符的原创 2014-12-16 13:00:24 · 46052 阅读 · 5 评论 -
linux下安装opcache扩展
参考:http://www.php.net/manual/zh/opcache.installation.php1234567wget http://pecl.php.net/get/zendopcache-7.0.2.tgztarzxvf zendopcache-7.0.2.t转载 2014-12-23 23:25:41 · 4943 阅读 · 0 评论 -
php __set __get __isset __unset用法防被忽悠分析
大家好我是小烟 今天分享下 php面向对象中__set __get __isset __unset用法之防忽悠介绍 今天详细讲解下这四个魔术方法的用法。和一些注意要点!原创 2014-12-03 17:25:35 · 7515 阅读 · 0 评论 -
php curl携带 cookie 请求
<?phpheader('Content-Type:text/html;charset=utf-8');echo "";function curl($cookie,$user_agent,$destURL, $paramStr='',$flag='get',$ip='10.57.22.151',$fromurl='http://www.baidu.com'){ $curl = curl原创 2014-12-17 13:01:25 · 16127 阅读 · 1 评论 -
windows 安装 apache+mysql+php
apache 开启 停止cmd 里面net stop apache2.2 停止apachenet start apache2.2 开启apachemysql 开启 停止 root aaaaaacmd 里面net stop mysql 停止mysqlnet start mysql 开启mysqlmysql -u root -h localhos原创 2012-08-25 20:31:32 · 659 阅读 · 0 评论 -
新浪微博如何实现 SSO 的分析
最近在使用sina微博时,经常性交替使用 weibo.com 和 t.sina.cm.cn进入我的微博。发现当我在 t.sina.com.cn中登录之后,直接切换至weibo.com,这时候在 weibo.com是已经登录的,当我在 weibo.com进行注销之后,再切换至 t.sina.com.cn,这时候在 t.sina.com.cn也已经是注销的状态了。 对于SSO的实转载 2013-07-23 09:54:59 · 1822 阅读 · 0 评论 -
单点登录 Ucenter 分析
首先我们先来了解下 Ucenter登录步骤1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证。2、如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用 uc_api_post('user原创 2013-07-23 08:55:12 · 16000 阅读 · 0 评论 -
php写分页类
写了个php分页类 功能还算可以 以后慢慢完善 里面有我的注释 分页公式需要熟记。 <?php /* 分页是我们读取数据库显示内容必须要用到的 所谓分页,也就是将数据库中的结果集人为的分为一段一段来显示 需要参数 当前第几页? GET 每页多少条? pageSize 总记录数? total 公式 (当前页码 -原创 2011-06-28 21:23:00 · 1114 阅读 · 1 评论 -
PHP导出excel
最近做一个项目,其中涉及到了数据导成excel的功能。后来使用了 开源的 PHPExcel http://phpexcel.codeplex.com/ 目前最新版是1.7.6PHPExcel 可以生成 .xls 和 .xlsx (office2007)。其封装的方法很全了。比如设置 excel的title,keywords,description获得某个sheet原创 2012-11-27 09:31:42 · 621 阅读 · 0 评论 -
php数组操作
把好几个URL 分门别类$str = "3gp|魔侠传之唐吉可德01|176x144|http://www.xunlei.com/01.3gp@3gp|魔侠传之唐吉可德02|176x144|http://www.xunlei.com/02.3gp@3gp|魔侠传之唐吉可德03|176x144|http://www.xunlei.com/03.3gp@mp4|魔侠传之唐吉可德01|1原创 2012-11-10 14:11:21 · 603 阅读 · 0 评论