
php技术
文章平均质量分 65
enough_br
这个作者很懒,什么都没留下…
展开
-
PHP单例模式的本质
相信很多朋友利用PHP在进行Web开发时都会用到设计模式,其中单例模式应该是应用最多的模式之一,本文并不讨论PHP的各种设计模式,而是重点和大家一起来分析、探讨、分享我自己对PHP单例模式的通俗认识和理解,旨在让大家彻底认清PHP单例模式的本质,我会用最通俗的语言把抽象问题具体化和通俗化,希望通过我的分享能让大家真正了解并掌握PHP单例模式。 最后我会简单的说一下PHP单例模式的缺点。转载 2012-05-31 17:04:21 · 1426 阅读 · 0 评论 -
正确设置 php-fpm子进程用户 提高网站安全性 防止被挂木马
转自:http://zhangxugg-163-com.iteye.com/blog/1171572核心总结:php-fpm 子进程所使用的用户,不能是网站文件所有者。凡是违背这个原则,则不符合最小权限原则。 根据生产环境不断反馈,发现不断有php网站被挂木马,绝大部分原因是因为权限设置不合理造成。因为服务器软件,或是 php 程序中存在漏洞都是难免的,在这种情况下,如果转载 2012-09-22 12:48:12 · 1143 阅读 · 0 评论 -
PHP中控制proc_open的执行时间
目前想到有两个办法。一个是fork方式。发现直接通过进程的alarm信号方式无法控制proc_open的执行。所以用fork方式,通过fork让子进程执行proc_open,父进程则通过alarm的方式控制时间。但是这么做会造成如果有输出值的话会很麻烦,要让子进程一直执行下去,因为没找到好的办法让父进程能获取子进程的输出。当然通过进程间通信能解决,但是太麻烦了。。。另外个str转载 2012-10-15 17:12:33 · 3074 阅读 · 0 评论 -
PHP多进程并发控制的测试用例
http://blog.s135.com/post/311/最近遇到一个问题,Linux下的PHP命令行程序作为守护进程,需要从队列文件中读一行数据,通过TCP协议发送给外地的接收服务器,再读下一行数据,再发送。当本地与外地的网络状况不好时,有时候发送一条数据所耗费的时间就较长,累积起来容易造成队列堵塞和延迟。 于是,我准备用该PHP命令行程序生成多个子进程,将串行处理变成并行处转载 2012-10-15 18:09:13 · 717 阅读 · 0 评论 -
正则表达式30分钟入门教程
转载:http://deerchao.net/tutorials/regex/regex.htm跳过目录本文目标 如何使用本教程 正则表达式到底是什么东西?入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用零宽断言 负向零宽断言注释 贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到 联系作者 网上的资源及本文参考文献更新纪录 本文目标30转载 2012-10-16 15:43:55 · 780 阅读 · 0 评论 -
PHP的多进程
一般有两种方法,一种是使用PHP自带的pcntl_*函数(仅限linux),另一种就是使用popen/proc_open,然后在php内部控制进程数量。使用pcntl_*函数PHP提供了一系列的pcntl_*函数,顾名思义就是process control functions,专门用来管理进程的。最常用的就是pcntl_fork和pcntl_wait。pcntl_fork的转载 2012-10-18 10:42:21 · 654 阅读 · 0 评论 -
PHP调用Linux系统的常用函数
PHP调用Linux系统的常用函数 1、exec函数 php $test = "ls /tmp/test"; //ls是linux下的查目录,文件的命令 exec($test,$array); //执行命令 print_r($array); ?> 2、system函数 $test = "ls /tmp/te转载 2012-10-15 17:03:30 · 647 阅读 · 0 评论 -
HandlerSocket使用经验
HandlerSocket 是一个日本人开发的mysql的插件,目的是用HandlerSocket把mysql改造成nosql的数据库。官方称qps可以到达70w/s+。HandlerSocket其实是绕过mysql的sql解析部分,直接读写innodb,然后对外维护一个epoll的连接,通过简单的文本协议与客户端通讯。他对外提供的服务也是简单的k-v增删改。mysql的sql解析是非常耗时的转载 2012-10-24 15:13:28 · 1156 阅读 · 0 评论 -
Linux下查看并发连接数和连接状态
Linux下查看apache、nginx的进程数,并发数要想在Linux系统下查看Apache的负载情况,最简单有效的方法就是查看Apache Server Status,在没有开启Apache Server Status的情况下,或安装的是其他的Web Server,比如Nginx的时候,可以使用下面的命令查看。 #ps -ef|grep httpd|wc -l 1388转载 2013-02-03 19:06:58 · 1099 阅读 · 0 评论 -
CURL模拟登陆并发帖
想执行某个后台页面,苦于每次都要登陆,想到模拟登陆的功能,于是试了一下,果然行,发帖机这是这个原理。修改了一下网上的程序。$id = (isset($_GET['id']) && $_GET['id']!='') ? $_GET['id'] : 0;$id++;$discuz_url = 'http://www.discuz.net/';//论坛地址$login_url =原创 2013-02-02 17:19:49 · 1008 阅读 · 0 评论 -
备忘日志【四】
一、[2012-05-16] PHP的dubugdebug_print_backtrace() + var_dump() + die();这个3个函数是debug无敌组合 二、[2012-05-18] Linux用源码安装的程序如何卸载?*.tar.gz/*.tgz、*.bz2形式的源代码软件包 安装:tar zxvf *.tar.gz 或 tar原创 2012-05-16 16:20:04 · 565 阅读 · 0 评论 -
Left join优化规则的研究
对于left join的优化,是应用开发人员、数据库内核开发人员关注的问题之一。我当初对left join进行分析归纳,后来阅读mysql时发现sql_select.cpp文件中的simplify_joins()函数的实现方法也是这样的,大家可以参考该函数。 【IT专家网独家】一、概述 对于left join的优化,是应用开发人员、数据库内核开发人员关注的问题之一。 应用转载 2012-09-21 11:23:59 · 648 阅读 · 0 评论 -
php引用(&)详解
php的引用(就是在变量或者函数、对象等前面加上&符号)在PHP 中引用的意思是:不同的名字访问同一个变量内容.与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址变量的引用PHP 的引用允许你用两个变量来指向同一个内容$a="ABC";$b =&$a;echo $a;//这里输出:ABCecho $b;//这里输出:ABC转载 2012-05-31 17:53:56 · 409 阅读 · 0 评论 -
PHP上传大文件 分割文件上传
最近遇到这么个情况,需要将一些大的文件上传到服务器,我现在拥有的权限是只能在一个网页版的文件管理系统来进行操作,可以解压,可以压缩,当然也可以用它来在线编辑.php文件。 文件有40M左右,但是服务器的上传文件最大限制是20M。首先想到了使用ini_set函数将upload_max_filesize的值设置大一些,但是有注意到了这个值使用ini_set设置时无效的,所以放弃了该方法。转载 2012-05-16 16:10:20 · 2136 阅读 · 0 评论 -
网站会员整合ucenter 实现多站点同步登录方法
之前简单的写过一篇的用户注册整合ucenter的文章,因为写的很简洁,很多童鞋都看的不是很明白,也收到了很多童鞋的问题邮件。前几天因为公司的几个 网站需要做同步登录功能,因此就用到了ucenter作为中间桥梁。现在很多开源的cms系统,博客系统,论坛系统都自带整合ucenter的插件,但是 如果是自己开发的网站需要和discuz或者ecshop同步登录的话,就需要把自己的完网站整合上ucenter转载 2012-06-05 20:50:29 · 543 阅读 · 0 评论 -
Ucenter 会员同步登录通讯原理
1,用户登录bbs,通过logging.php文件中,使用函数uc_user_login验证,如果验证成功,将调用函数uc_user_synlogin(位于uc_client下的client.php文件中),在这个函数中调用 uc_api_post('user', 'synlogin', array('uid'=>$uid));之后向UC_API.'/index.php'传递了数据;这里的UC_A转载 2012-06-05 20:51:42 · 659 阅读 · 0 评论 -
Ucenter中跨域访问的分析
记得在之前的一篇名为《UCENTER 会员同步登录通讯原理》的文章中,我说到了,在所有的应用中要想向Ucenter的服务器端发送数据,都调用到了一个函数(uc_api_post)。其实这个函数里面的学问蛮大的。他涉及的东西很多,我们一一来分析:ucenter客户端向服务器端发送请求的原理解析:当我们一个应用(UCHome)向Ucenter发送一个同步登陆或者同步退出时,该应用(UCHome转载 2012-06-05 20:53:30 · 645 阅读 · 0 评论 -
PHP 排序算法
冒泡法:12345678910111213141516171819//冒泡排序functionmaopao($arr){ $n= count($arr);转载 2012-07-17 10:11:55 · 458 阅读 · 0 评论 -
Zend Studio 快捷键
12345678910111213141516171819202122232425262728293031Ctrl+Z:快速撤销转载 2012-07-17 10:36:15 · 374 阅读 · 0 评论 -
web中缓存的几种方式
看了构建高性能的web站点一书,对其中的集中web缓存进行一个总结1 应用程序实现的动态页面缓存应用程序把动态文件生成的html文件缓存到文件服务器,以后用户请求动态文件,直接从文件服务器加载对应的静态缓存的html文件返回给用户,这里面主要节省了动态语言的执行时间和数据库访问时间。但是会增加了缓存框架的加载和缓存查找的时间。 2 把解释执行的开发语言编译成为目标代码这个主要把转载 2012-09-29 08:53:42 · 959 阅读 · 0 评论 -
PHP异步调用、多线程、计划任务
PHP编程也能实现这些看起来很“高级”的编程任务。异步调用一般用来执行耗时较长的操作,让程序在服务器后台执行,前台用户无需等待。参考这篇文章:PHP异步调用避免程序运行超时。案例:PHP语言某SNS社区,在系统里,用户给自己的好友(好友数量上百)发送邮件,每封邮件内容不一,发送后提示发送完毕!常用PHP写法sendmail.php$count=count($em转载 2012-10-11 18:06:48 · 2206 阅读 · 0 评论 -
web集群时session同步的3种方法
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题:一,利用数据库同步session在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想转载 2013-02-05 16:05:05 · 427 阅读 · 0 评论 -
解决WEB集群session同步的方案,Redis内存缓存
转自:http://www.sziwap.com/archives/75.html最近公司WEB服务器换集群方式,集群所带来直接的问题就是session共享。如果用PHP自带的session处理方式,又要达到一致性,我已知的解决方案是NFS方法,不过担心磁盘性能以及session的处理机制,决定放弃这种方法,最后决定用内存缓存服务器来实现。公司目前主要缓存的使用已经全部转至Re转载 2013-02-05 16:35:41 · 1787 阅读 · 0 评论 -
session保存到redis
/** * Store PHP sessions in redis. * * Depends on {@link http://github.com/nrk/predis/ Predis} * * @author Mickael Magniez * * @version 0.1 * * @license http://www.gnu.org/licenses/lgpl-转载 2013-02-06 17:42:03 · 1094 阅读 · 0 评论 -
PHP ServerPush (推送) 技术的探讨
需求:我想做个会员站内通知的功能。不想用以前的ajax查询,听说有个推技术。以下文章介绍的不错,来自转载,==================================================================================PHP中Push(推送)技术的探讨 [http://vistaswx.com/blog/articl转载 2013-10-16 14:17:19 · 840 阅读 · 0 评论 -
一种新型的绕过XSS防御的方法
转自:http://zone.wooyun.org/content/1253让XSS攻击来得更猛烈些吧 一种新型的绕过XSS防御的方法 大家都知道,普遍的防御XSS攻击的方法是在后台对以下字符进行转义:、’、”,但是经过本人的研究发现,在一些特殊场景下,即使对以上字符进行了转义,转载 2014-01-07 20:52:09 · 992 阅读 · 0 评论 -
php对表单提交的字符串过滤处理
//过滤参数function addslashes_deep($value){ if (empty($value)){ return $value; }else{ return is_array($value) ? array_map('a原创 2011-07-19 10:21:11 · 786 阅读 · 0 评论 -
php算法
转自:http://zuo.ai.xiao.blog.163.com/blog/static/60791553201051011556303/这里是用PHP写的几个基础算法,算法的重要性貌似对于PHP程序员不怎么重要,其实是非常重 要的,经典名句:算法+数据结构=程序。作为一名真正的高级PHP程序员,我认为应该熟悉C,如果你想成为真正的程序员,请好好学C,学好数据结构与算 法。这里仅仅转载 2014-02-18 16:04:11 · 624 阅读 · 0 评论 -
mysql 分组查询数据时,如何获得用于分页的总记录数?
主要是想查询符合条件的记录总数,查询数据使用的sql为:SELECT SUBSTRING_INDEX(`url`,'/',3) AS host,COUNT(*) AS count FROM `tab` WHERE `type`=4 GROUP BY host HAVING(count >= 5) ORDER BY count desc LIMIT 0,10以转载 2014-06-23 16:34:03 · 4320 阅读 · 0 评论 -
mysql中utf8编码中文字符长度问题
只适用mysql5.0以上的版本: 1.一个汉字占多少长度与编码有关: UTF-8:一个汉字=3个字节 GBK:一个汉字=2个字节 2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,仅是实际字节长度有所区别 3.MySQL检查长度,可用SQL语言: select LENGTH(fieldna转载 2015-01-06 17:01:31 · 850 阅读 · 0 评论 -
备忘日志【六】
1、[2013-07-27] 技术分享,sql索引优化。MySQL技术内幕:InnoDB存储引擎(第2版)http://product.china-pub.com/3767802http://blog.codinglabs.org/articles/theory-of-mysql-index.htmlXSS http://tmxk.org/forum-51-1.html原创 2013-07-27 19:09:21 · 2138 阅读 · 0 评论 -
备忘日志【七】
1、 【2015-04-29】system、exec、passthru这些执行外部程序的函数。任何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。否则会导致 PHP 挂起,直至程序执行结束。程序在后台执行:exec('/usr/local/php/bin/php /home/web/public/index.php crontab exprot原创 2015-04-30 15:54:24 · 514 阅读 · 0 评论 -
php curl 对IP与来源地址的伪造
第一篇文章,正好赶上了curl应用,之前也是做过curl的模拟登录curl的强大也还真的不是吹出来的哦!facebook,msn,hotmail.yahoo(因为工作需要)这些都模拟进去过原本以为IP是不能模拟的,来源地址伪造还听说过说这也搞笑,自己都用了curl这长时间,竞然都不了解这个哦不扯远了正题…curl发出请求的文件fake_ip.php:?View转载 2013-09-02 19:49:29 · 1203 阅读 · 0 评论 -
备忘日志【五】
1、[2012-10-13] ubuntu中 cron 服务的默认日志存放位置以前用 CentOS,cron 的默认日志存放在 /var/log/cron 处,而 ubuntu 的cron日志还要设置一下修改rsyslog文件,将/etc/rsyslog.d/50-default.conf 文件中的#cron.*前的#删掉;重启rsyslog服务service rsyslog原创 2012-10-13 17:42:49 · 4134 阅读 · 0 评论 -
php三种post数据方法的区别
php三种post数据方法Curl、socket、file_get_contents 有什么区别三种方法都要加上 stream_set_blocking 才可以实现无须等待马上返回结果吗?一般什么情况下用哪种方法,有没有人总结过的,谢啦。。拖拉机,公交车,轿车 都是运输工具,他们的轮子在转动上有什么区别没有区别.curl 不需要加你说的那个什么东东...原创 2013-02-21 16:09:15 · 685 阅读 · 0 评论 -
异步调用发邮件页面
原因:发邮件时需要一定的等待时间,给用户的体验很不好。解决:通过socket模拟post提交到另一个页面执行(socket提交的页面在后台执行的)。function httpRequest($request_url, $type='get', $data=array(), $block=FALSE, $timeout=15) { $matches = parse_url原创 2013-02-22 15:46:57 · 773 阅读 · 0 评论 -
把session保存到redis中,session-redis
web集群,跨域,跨服等,需要共享session。想要共享 SESSION 数据,那就必须实现两个目标: 一个是各个服务器对同一个客户端产生的 SESSION ID 必须相同,并且可通过同一个 COOKIE 进行传递,也就是说各个服务器必须可以读取同一个名为 PHPSESSID 的 COOKIE; 另一个是 SESSION 数据的存储方式/位置必须保证原创 2013-02-22 16:32:38 · 1692 阅读 · 0 评论 -
备忘日志【一】
1、[2012-03-14] discuz可逆的加解密函数,安全,高效,md5,sha1等不可逆。/** * 对字符串进行加密和解密 * @param $string * @param $operation DECODE 解密 | ENCODE 加密 * @param $key 当为空的时候,取全局密钥 * @param $expiry 有效期,单位秒 * @re原创 2012-03-14 18:24:44 · 548 阅读 · 0 评论 -
php之任务队列
http://blog.s135.com/httpsqs/ 例如:邮件队列、任务队列、消息队列、Feed队列用户注册成功,而不是直接给用户发送email,而是把新注册的用户的email插入到邮件任务队列中。由服务器给用户发送邮件。发送成功或发送N次失败的将从队列中清除。 -------------------------------如果是普通的转载 2013-03-13 19:22:36 · 939 阅读 · 0 评论 -
php pack、unpack二进制流接口应用实例
在工作中,我也逐渐了解到pack,unpack,ord对于二进制字节处理的强大。 下面我逐一介绍它们。在我们工作中,用到它们的估计不多。 我在最近一个工作中,因为通讯需要用到二进制流,然后接口用php接收。当时在处理时候,查阅不少资料。因为它们使用确实比较少,也很少朋友工作中会用到它们。 在工作中,我也逐渐了解到pack,unpack,ord对于二进制字节处理的强大。 下面我逐一介绍它们。转载 2013-03-28 19:29:17 · 1424 阅读 · 0 评论