php
lg_lin
这个作者很懒,什么都没留下…
展开
-
ThinkPHP3.1迁移到PHP7
一、在PHP7中,preg_replace不能用/e修饰符,所以用preg_replace_callback代替preg_replace,需要修改的文件包括ThinkPHP\Lib\Template\ThinkTemplate.class.phpThinkPHP\Lib\Core\Dispatcher.class.phpThinkPHP\Lib\Core\Db.class.phpThinkPHP\...转载 2018-05-13 11:54:26 · 2123 阅读 · 0 评论 -
Traits的用法
原文出处:http://blog.csdn.net/longlongmylove/article/details/7521379php5.4新功能Traits介绍1. traitsTraits是在5.4中新增的一个用于实现代码重用的方法。php是一种单一继承的语言,我们无法像java一样在一个class中extends多个基类来实现代码重用,现在Traits能解决这转载 2015-09-15 11:46:58 · 697 阅读 · 0 评论 -
Traits的用法
原文出处:http://blog.csdn.net/longlongmylove/article/details/7521379php5.4新功能Traits介绍traits Traits是在5.4中新增的一个用于实现代码重用的方法。php是一种单一继承的语言,我们无法像java一样在一个class中extends多个基类来实现代码重用,现在Traits能解决这一代码重用的问题,它能让开发者在转载 2015-09-15 11:45:29 · 1214 阅读 · 0 评论 -
phpunit在window下安装
官网:https://phpunit.de/manual/current/zh_cn/installation.html#installation.phar.windowsWindows为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin将 ;C:\bin 附加到 PATH 环境变量中(相关帮助)下载 https://phar.phpunit.de/phpunit.phar 并将文件保存到原创 2015-09-14 19:15:37 · 493 阅读 · 0 评论 -
利用curl_multi_init并行多线程处理网络数据
利用curl_multi_init并行处理网络数据原创 2015-08-14 20:07:36 · 2930 阅读 · 0 评论 -
PHP获取Mac地址
class GetMacAddr { var $return_array = array(); // 返回带有MAC地址的字串数组 var $mac_addr=array(); function GetMacAddr() { switc转载 2015-08-11 16:07:49 · 3560 阅读 · 2 评论 -
Swoole 高性能网络通信框架
官网:http://www.swoole.com/PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网、车联网、智能家居等领域。 使用PHP+Swoole作为原创 2015-06-15 10:24:32 · 986 阅读 · 0 评论 -
php curl 添加cookie伪造登陆抓取数据
原文出处:http://blog.csdn.net/clh604/article/details/38759779有的网页必须登陆才能看到,这个时候想要抓取信息必须在header里面传递cookie值才能获取1、首先登陆网站,打开firebug就能看到对应的cookie把这些cookie拷贝出来就能使用了2、[转载 2015-05-11 15:49:16 · 830 阅读 · 0 评论 -
php中读取大文件实现方法详解
本文章来给各位同学介绍php中读取大文件实现方法详解吧,有需要了解的同学可进入参考参考。需求如下: 现有一个1G左右的日志文件,大约有500多万行, 用php返回最后几行的内容。实现方法:1. 直接采用file函数来操作注: 由于 file函数是一次性将所有内容读入内存,而php为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内存不足,使服务器出现宕机,所以默认情转载 2015-03-04 10:28:43 · 386 阅读 · 0 评论 -
Linux下编译安装apche+php+mysql
近些日子经常性的要在Linux下配置apache+php+mysql的环境。以前的时候我总是在centos下使用yum的方式直接安装。方便是很方便。但是总觉得少了什么。而且Centos下的默认的源对PHP只支持到5.1.6要Update必须要换源,前面也找了一些源发现很多都已经不能用了。很是麻烦。所以一狠心。直接使用编译的方式安装了。现在分享下我的安装过程。首先安装GCC GCC-C++这转载 2014-06-25 20:16:57 · 897 阅读 · 0 评论 -
在 PHP 中使用命令行工具
在 Web 应用程序中运行 shell 命令转载 2014-05-14 14:36:48 · 579 阅读 · 0 评论 -
分析 PHP 应用程序以查找、诊断和加速运行缓慢的代码(Xdebug+KCacheGrind)
利用Xdebug+KCacheGrind来调试转载 2014-05-14 14:28:31 · 1118 阅读 · 0 评论 -
分表:根据注册用户名来插入不同表
根据首尾字符来算出要插入的对应表名/** * 依用户账号获取用户所在资料表的表名称 * * @param string $username 用户账号 * @param boolean $fullname 是否获取表全名 * @return string */function get_user_table($username, $fullname =原创 2014-05-15 16:52:17 · 1255 阅读 · 0 评论 -
thinkphp调用PHPExcel扩展输出乱码解决方法
使用时常见的问题总结:1.关于提示找不到文件的问题:原因可能有:缓冲区没有打开或者mb_overlod_func函数没有关闭,解决这个问题的最好办法是把php.ini中display_errors打开,下载文件,打开后会提示相应错误信息。若是后者,则需要打开php.ini文件,找到mbsrtring.func_overload=7将其隐掉。若能正常导出excel但是没有数据转载 2014-04-08 17:36:39 · 3596 阅读 · 0 评论 -
基于HTTP协议的轻量级开源简单队列服务:HTTPSQS
详细请查看http://blog.s135.com/httpsqs/转载 2014-02-11 20:10:39 · 617 阅读 · 0 评论 -
xcache安装与配置
版本下载http://xcache.lighttpd.net/wiki/ReleaseArchivehttp://xcache.lighttpd.net/wiki/InstallFromSource~/src $ wget http://xcache.lighttpd.net/pub/Releases/3.0.3/xcache-3.0.3.tar.gz~/src $原创 2013-06-27 14:09:09 · 1051 阅读 · 0 评论 -
PHP解决抢购、秒杀、抢楼、抽奖等阻塞式高并发库存防控超量的思路方法
如今在电商行业里,秒杀抢购活动已经是商家常用促销手段。但是库存数量有限,而同时下单人数超过了库存量,就会导致商品超卖甚至库存变负数的问题。 又比如:抢购火车票、论坛抢楼、抽奖乃至爆红微博评论等也会引发阻塞式高并发问题。如果不做任何措施可能在高瞬间造成服务器瘫痪,如何解决这个问题呢? 这里提出个人认为比较可行的几个思路方法:方案一:使用消息队列来实现可以基于例如MemcacheQ等这样的消息队列,转载 2015-10-31 10:41:25 · 1501 阅读 · 0 评论 -
PHP之curl put方式提交与接受数据
提交的客户端实现代码<?php function curlrequest($url,$data,$method='post'){ $ch = curl_init(); //初始化CURL句柄 curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL curl_setopt($ch, CURLOPT_RETURNTRANSFER转载 2015-12-11 14:55:50 · 8345 阅读 · 0 评论 -
abstract 和 interface 的区别及其各自的应用场合
1.相同点:A. 两者都是抽象类,都不能实例化。B. interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。2. 不同点:A. interface需要实现,要用implements,而abstract class需要继承,要用extends。B. 一个类可以实现多个interface,但一个类只能继承一个abstract class。转载 2016-01-15 17:22:29 · 423 阅读 · 0 评论 -
php执行shell不阻塞方法
大家都知道php执行系统命令的方法有: system() 输出并返回最后一行shell结果。 exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。 passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。这些方法都会等待命令执行完毕后才会继续执行后续的程序 不阻塞可以将命令输出的内容写入系统的一个回收站文件,这样程序就不会阻塞 例如...转载 2018-04-11 15:09:06 · 1488 阅读 · 0 评论 -
swoole那些坑
最近在做一个数据中心,通过swoole接收websocket协议数据,然后即时存到redis里,再通过定时器抓取redis数据保存到mysql中。本来打算用task worker工作进程来处理redis操作,但task是同步,worker是异步非阻塞。如果向task发送数据超过处理能力时,会引发所有worker进程摆工,无法再接收新的数据,所以不可控,最后只能用worker来工作处理redis数原创 2018-01-26 00:27:09 · 2798 阅读 · 1 评论 -
网站被挂马处理
运用360扫描只能解决表面层面的问题,根本无法找出木马所在文件既然是web木马就会留下访问的足迹1.通过命令查询nginx的访问日志,因为涉及到上传文件,所以一定是通过POST方式来上传,那我们就查最近有哪些文件是POST访问的 cat *.log|grep "POST"|grep 200 | awk '{print $7}' |grep -o -E '.*.php' |原创 2017-09-30 17:07:59 · 546 阅读 · 0 评论 -
Composer安装和使用
一、简介Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们详情查看Composer说明:http://docs.phpcomposer.com/00-intro.html#Introduction二、安装 1.推荐使用中国区的镜像安装 https://pkg.phpcomposer.com/#h原创 2017-05-11 15:40:11 · 4343 阅读 · 0 评论 -
namespace及use的用法
namespace(以下简称ns)。在定义了一个ns之后,下面所申明的class、interface、const(不包含variable)都是在申明的ns这个“域”里面的。当引用一个申明了ns的包含文件,想要调用这个ns里面的东西,那必须调整当前脚本也到此ns域,否则就得用全称()包含ns全称):[php] view plain copy /转载 2017-04-14 17:13:13 · 335 阅读 · 0 评论 -
php 扩展安装
下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装phpize./configuremake make install如果你是源代码安装的PHP,会出现版本和编译时使用的phpize和php-config不对应,需要使用绝对路径来进行编译。使用绝对路径执行PHP/usr/local/php7/bin/phpize./configure --wi原创 2017-04-13 18:18:00 · 608 阅读 · 0 评论 -
gearman 入门使用笔记
一、简介gearman是可以把工作委派到其它机器或进程的工具。 官网地址:http://gearman.org/Gearman通常由三部分组成,client+worker+任务服务器,由worker执行client发来的job,再通过job server返回给client。Gearman提供了Client、Worker的API,利用这些API来与job server通讯。转载 2016-11-04 15:28:04 · 384 阅读 · 0 评论 -
PHP利用apktool.jar自动打包解包
apktool下载地址:http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/ApkTool.shtml应用场景:如果需要替换母包里的配置值,给不同的渠道使用,渠道很多的话,用传统修改打包效率很多,但利用PHP+apktool就达到事半功倍的效果PHP代码如下:$sour原创 2016-09-14 15:39:05 · 3835 阅读 · 1 评论 -
linux 安装软件出现的各种问题汇总
PHP:1. bash: php: command not found 原因:直接输入#php -v 命令时出现 解决:这是因为编译安装时PHP,而用YUM安装则不会出现,找到php的文件路径,然后,做软链接到/bin目录下:“ln -s /usr/local/php7/bin/php /bin/php”原创 2016-08-10 15:09:57 · 1484 阅读 · 0 评论 -
编译安装nginx1.9.7+php7.0.0服务器环境
原文出处:https://segmentfault.com/a/1190000004123048一直以来我都通过网上的一些材料去搭建lnmp环境,通过直接yum安装nginx mysql php等软件。但是为了原生态的编译安装最新的软件版本,我决定自己亲手搭建lnmp环境,采用最新的nginx1.9.7(昨天出了1.9.8)和php7来研究如何搭建起nginx最新版本和php7的环境。转载 2016-08-09 17:51:02 · 400 阅读 · 0 评论 -
PHP7扩展开发之hello word
原文出处:https://yq.aliyun.com/articles/56002?spm=5176.8091938.0.0.lmH3JP本文是以PHP7作为基础,讲解如何从零开始创建一个PHP扩展。本文主要讲解创建一个扩展的基本步骤都有哪些。示例中,我们将实现如下功能:echo say();?>输出内容:$ php ./test.php$ hello转载 2016-07-18 17:37:54 · 748 阅读 · 0 评论 -
PHP获取上周、本周、上月、本月、本季度、上季度时间方法大全
<?php /**date 2015-04-11 * author http://www.lai18.com **/ echo date("Ymd",strtotime("now")), "\n"; echo date("Ymd",strtotime("-1 week Monday")), "\n"; echo date("Ymd",strtot原创 2016-07-14 12:17:58 · 9588 阅读 · 0 评论 -
PHP设计模式之单例模式
PHP设计模式之单例模式单例模式顾名思义,就是只有一个实例。作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。1. 实现单例模式所要考虑的问题:问题1:只能有一个实例,new是罪恶的根源,想办法让外部不能new如何解决?解决方法:通过将构造方法,保护或私有化,外部即不能生成实例了。问题2:不能new了,那不成0例模式了原创 2016-02-26 14:21:56 · 294 阅读 · 0 评论 -
“米粉节”背后的故事——小米网抢购系统开发实践
原文出处: http://www.csdn.net/article/2014-11-07/28225452014年的米粉节2014年4月9日凌晨,我和同事们对小米网的抢购系统做了最后的检查与演练。几个小时后,小米网今年开年来最重要的一次大型活动“米粉节”就要开始了。这次米粉节活动,是小米电商的成人礼,是一次重要的考试。小米网从网站前端、后台系统、仓储物流转载 2016-03-21 14:51:20 · 319 阅读 · 0 评论 -
Workerman 开源高性能的PHP socket 服务器框架
官网地址:http://www.workerman.net/Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务原创 2015-12-18 14:18:52 · 1076 阅读 · 0 评论 -
解决PHP调存储过程问题
php 调存储过程没有java和.NET方便,希望下一个版本能好点。我们来看一下面的例子 数据库代码CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) NOT NULL auto_increment, `title` varchar(50), PRIMARY KEY (`id`)) ENGIN转载 2013-04-10 11:29:56 · 1139 阅读 · 0 评论 -
用多查询时mysqli::next_result()出错
搞了一个下午,原来是PHP版本的问题用HTTP测试时PHP版本是5.4.x,正常执行,而用IDC单元phpunit测试时是版本是5.3.x,导至出现错误mysqli::next_result(): There is no next result set. Please, call mysqli_more_results()/mysqli::more_results() to che原创 2013-04-10 16:30:57 · 2971 阅读 · 0 评论 -
PHP技巧:php过滤危险html代码
用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布局混乱的代码也在过滤范围内。以下是引用片段:#用户发布的html,过滤危险代码function uh($str){ $farr = array( "//s+/",转载 2008-05-09 16:07:00 · 586 阅读 · 0 评论 -
PHP实现翻页跳转功能
我们都知道用 php+mysql 在 web 页实现数据库资料全部显示是非常简单而有趣的,数据库资料很少的情况下页面显示还是让人满意的,但是当数据库资料非常多的情况下,页面的显示情况将会变的 非常糟糕,下面就来介绍一下如何实现当前页面数据资料显示数量及如何实现动态的翻转功能.这里将介绍两种翻页显示功能的实现:---------------------------------------------转载 2008-05-09 16:05:00 · 844 阅读 · 0 评论 -
国外主流PHP框架比较
最近简单的使用了目前在国内用的比较多的几个主流国外PHP框架(不包括国内框架),大致对这些框架有个直观上的感受,简单分享一下,对于哪些做框架选型的时候,权当一个参考。主要参考的框架包括:CodeIgniter、CakePHP、ZendFramework、Symfony说明:我对很多框架也没有认真使用,只是简单试用了一下,可能很多看法不成熟或者是错误的,请大家指正,一起成长。 :-)【 Co转载 2008-05-09 10:35:00 · 611 阅读 · 0 评论 -
FCKeditor的PHP配置,超级无敌简单
说起 这个,更是郁闷,网上找了N篇资料,那是越看越迷糊啊,最后还是自己看代码搞定的。为了方便日后学习也小记一下吧。1、下载FCKeditor 多国语言版2、解压后为文件夹减肥:删除/FCKeditor/目录下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml,fckeditor.php五个文件以外的所有文件删除目录/editor转载 2008-05-09 15:45:00 · 834 阅读 · 0 评论