随笔分类 - php
php下ajax的文件切割上传
摘要:html5中的File对象继承Blob二进制对象,Blob提供了一个slice函数,可以用来切割文件数据。 <!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title></title> </head> <body>
阅读全文
php 使用html5 XHR2 上传文件 进度显示
摘要:思路:只要我们知道上传文件的总大小,还有上传过程中上传文件的大小,那么就可以实现进度显示了。 在html5中,XMLHttpRequest对象,传送数据的时候,progress事件用来返回进度信息。 它分成上传和下载两种情况 1.下载的progress事件属于XMLHttpRequest对象 2.上
阅读全文
php iframe 上传文件
摘要:我们通过动态的创建iframe,修改form的target,来实现无跳转的文件上传。 具体的实现步骤 1.捕捉表单提交事件 2.创建一个iframe 3.修改表单的target,指向iframe 4.删除iframe file.html代码如下: <!DOCTYPE HTML> <html lang
阅读全文
linux 下 php 安装 Gearman
摘要:Gearman是一个分发任务的程序框架,它会对作业进行排队自动分配到一系列机器上。gearman跨语言跨平台,很方便的实现异步后台任务。 一个Gearman请求的处理过程涉及三个角色: Client -> Job Server -> Worker Client:请求的发起者。 Job Server:
阅读全文
linux 下 php 安装 pthreads
摘要:1、下载pthreads的源码包 https://pecl.php.net/package/pthreads 如:pthreads-3.1.6.tgz 2、解压 > tar zxvf pthreads-3.1.6.tgz > cd pthreads-3.1.6 3、通过phpize命令生成configure > /data/nmp/php/bin/phpize 4、生成好后,运行conf...
阅读全文
linux 下 php 安装 event
摘要:1、下载event源码包 https://pecl.php.net/package/event 如:event-2.0.4.tgz 2、解压 > tar zxvf event-2.0.4.tgz > cd event-2.0.4 3、通过phpize命令生成configure > /data/nmp/php/bin/phpize (*如上路径只作演示,具体视安装环境而定。) 4、生成好后,...
阅读全文
linux 下 php 安装 libevent
摘要:一、安装libevent库 1、到libevent官网下载安装源码 http://libevent.org/ 如:libevent-2.0.22-stable.tar.gz 2、解压源码包 > tar zxvf libevent-2.0.22-stable.tar.gz > cd libevent-2.0.22-stable 3、configure > ./configure --pref...
阅读全文
php libevent 详解与使用
摘要:libevent是一个基于事件驱动的高性能网络库。支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。 常量如下: 值常量名含义 1 EV_TIMEOUT 超过时间后事件成为激活状态 2
阅读全文
php Pthread 多线程 (六) Pool类 线程池
摘要:Pool对象是多个Worker对象的容器,同时也是它们的控制器,对Worker功能更高抽象。 比如Worker是河,而线程是运行在河里的船。Pool则是管理着多条河。 <?php //继承Collectable垃圾收集类,好让Pool::collect进行收集 class Sql extends C
阅读全文
php Pthread 多线程 (五) 线程同步
摘要:有些时候我们不希望线程调用start()后就立刻执行,在处理完我们的业务逻辑后在需要的时候让线程执行。 <?php class Sync extends Thread { private $name = ''; public function __construct($name) { $this->
阅读全文
php Pthread 多线程 (四) 共享内存
摘要:有些时候我们希望在多个线程中共享一些需要的数据,我们可以使用shmop扩展。 <?php class Count extends Thread { private $name = ''; public function __construct($name) { $this->name = $name
阅读全文
php Pthread 多线程 (三) Mutex 互斥量
摘要:当我们用多线程操作同一个资源时,在同一时间内只能有一个线程能够对资源进行操作,这时就需要用到互斥量了。比如我们对同一个文件进行读写操作时。 <?php class Add extends Thread { private $name = ''; private $res = null; privat
阅读全文
php Pthread 多线程 (二) Worker和Threaded
摘要:<?php //Worker是具有持久化上下文(执行环境)的线程对象 //Worker对象start()后,会执行run()方法,run()方法执行完毕,线程也不会消亡 class MySqlWorker extends Worker { private $name = ''; private $d
阅读全文
php socket 编程(一)
摘要:socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个socket,并绑定到一个端口上,不同的端口对应于不同的服务。 服务端的流程如下: 1、初
阅读全文
php5.3 php-fpm 开启 关闭 重启
摘要:自php5.3开始,php源码中包含了php-fpm,不需要单独通过补丁的方式安装php-fpm,在源码安装的时候直接 configure 中增加参数 –enable-fpm 即可。 所以启动、关闭和重新加载的方式和以前不同,需要使用信号控制: php-fpm master 进程可以理解一下信号:
阅读全文
php 中的信号处理
摘要:首先我们需要了解几个函数 pcntl_signal 安装信号处理器,也就是当指定信号发生时,调用函数。 pcntl_alarm 指定秒数后向进程发送SIGALRM信号。 posix_getpid 返回当前进程id posix_kill 给指定进程发送信号 一些常用的信号说明 SIGHUP 本信号在用
阅读全文
php多进程中的阻塞与非阻塞
摘要:我们通过pcntl_fork来创建子进程,使用pcntl_wait和pcntl_waitpid来回收子进程。 子进程退出后,父进程没有及时回收,就会产生僵尸进程。 例1: <?php define('FORK_NUMS', 5); $pids = array(); //我们创建5个子进程 for($
阅读全文
php 函数中静态变量的问题
摘要:<?php function msg() { static $a = 0; echo $a++, '<br />'; } msg(); msg(); msg(); 上述代码,分别输出0,1,2 静态变量$a在第一次定义并初始化后就会常驻内存,直到脚本执行完毕。 当第二次调用msg()函数时,这时的$
阅读全文
php 账号不能同时登陆,当其它地方登陆时,当前账号失效
摘要:解决的思路是每当用户登陆时我们必需记录当前的用户id和session_id,如果有人在其它地方用此账号登陆时,我们把此用户id对应的session_id的session文件删除,并重新记录当前的session_id。那么之前的用户就失效了。 login.php代码如下: <?php session_
阅读全文
centos6.6 下 安装 php7 按 nginx方式
摘要:1、安装必要的依赖库 > yum -y install gd zlib libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel openssl openssl-devel curl
阅读全文