php技巧

php 的多进程操作实践案例分析

2020-02-26
本文实例讲述了php 的多进程操作.分享给大家供大家参考,具体如下: php的多进程处理依赖于pcntl扩展,通过pcntl_fork创建子进程来进行并行处理. 例1如下: <?php $pid = pcntl_fork(); if($pid == -1) { //错误处理:创建子进程失败时返回-1. die('fork error'); } else if ($pid) { //父进程会得到子进程号,所以这里是父进程执行的逻辑 echo "parent \n"; //等待子进程

php多进程并发编程防止出现僵尸进程的方法分析

2020-02-26
本文实例讲述了php多进程并发编程防止出现僵尸进程的方法.分享给大家供大家参考,具体如下: 对于用PHP进行多进程并发编程,不可避免要遇到僵尸进程的问题. 僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程(zombie)进程.任何进程在退出前(使用exit退出) 都会变成僵尸进程(用于保存进程的状态等信息),然后由init进程接管.如果不及时回收僵尸进程,那么它在系统中就会占用一个进程表项,如果这种僵尸进程过多,最后系统就没有可以用的进程表项,于是也无法再运行其它的

php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析

2020-02-26
本文实例讲述了php 下 html5 XHR2 + FormData + File API 上传文件操作.分享给大家供大家参考,具体如下: FormData的作用: FormData对象可以帮助我们自动的打包表单数据,通过XMLHttpRequest的send()方法来提交表单.当然FormData也可以动态的append数据.FormData的最大优点就是我们可以异步上传一个二进制文件. 例1如下: <!DOCTYPE HTML> <html lang="zh-CN"

php使用fputcsv实现大数据的导出操作详解

2020-02-26
本文实例讲述了php使用fputcsv实现大数据的导出操作.分享给大家供大家参考,具体如下: 为了实验大数据的导出,我们这里先自已创建一张大表,表结构如下: CREATE TABLE `tb_users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `name` varchar(32) DEFAULT '' COMMENT '用户名', `age` tinyint(3) DEFAULT '0' COMMENT '

php实现根据身份证获取精准年龄

2020-02-25
前言 有时候,我们希望通过身份证来计算出年龄,那么下面我写的函数很适合. 实现 代码中已有详细注释. function getAge($id){ # 1.从身份证中获取出生日期 $id = $id;//身份证 $birth_Date = strtotime(substr($id, 6, 8));//截取日期并转为时间戳 # 2.格式化[出生日期] $Year = date('Y', $birth_Date);//yyyy $Month = date('m', $birth_Date);//mm

gearman中任务的优先级和返回状态实例分析

2020-02-25
本文实例讲述了gearman中任务的优先级和返回状态.分享给大家供大家参考,具体如下: gearman中任务的优先级和返回状态 一.任务的优先级 同步阻塞调用,等待返回结果 doLow:最低优先 doNomal:正常优先级 doHigh:最优先执行 异步派发任务,不等待返回结果,返回任务句柄,通过该句柄可获取任务运行状态信息 doLowBackground doBackground doHighBackground 注意Task和doXXX区别,Task是一组job,派发后会分配到多个worke

php5.3/5.4/5.5/5.6/7常见新增特性汇总整理

2020-02-24
本文实例总结了php5.3/5.4/5.5/5.6/7新增特性.分享给大家供大家参考,具体如下: php新增的特性,只是略微整理,并不完全. 一.php5.3添加的新特性 1.?:简化的三元运算符 <?php $cur = $cur ? $cur : 1; $cur = $cur ?: 1; 2.匿名函数 <?php $test = function() { echo 'test'; }; $test(); $arr = array(1, 2, 3, 4, 5); $arr = array_m

php使用gearman进行任务分发操作实例详解

2020-02-24
本文实例讲述了php使用gearman进行任务分发操作.分享给大家供大家参考,具体如下: 一.安装gearman 下载gearman源码包 https://launchpad.net/gearmand/+download 如: gearmand-1.1.12.tar.gz 下载php的gearman扩展包 http://pecl.php.net/package/gearman 如: gearman-1.1.2.tgz 安装gearman > yum install boost-devel gpe

PHP实现创建一个RPC服务操作示例

2020-02-23
本文实例讲述了PHP实现创建一个RPC服务操作.分享给大家供大家参考,具体如下: RPC全称为Remote Procedure Call,翻译过来为"远程过程调用".主要应用于不同的系统之间的远程通信和相互调用. 比如有两个系统,一个是PHP写的,一个是JAVA写的,而PHP想要调用JAVA中的某个类的某个方法,这时候就需要用到RPC了. 怎么调?直接调是不可能,只能是PHP通过某种自定义协议请求JAVA的服务,JAVA解析该协议,在本地实例化类并调用方法,然后把结果返回给PHP. 这

php实现通过stomp协议连接ActiveMQ操作示例

2020-02-22
本文实例讲述了php实现通过stomp协议连接ActiveMQ操作.分享给大家供大家参考,具体如下: 前面介绍了php ActiveMQ的安装与使用,这里再来讲述一下php通过stomp协议连接ActiveMQ. 一.安装php的stomp扩展 http://pecl.php.net/package/stomp 如:stomp-2.0.0.tgz > tar xf stomp-1.0.9.tgz > cd stomp-1.0.9 > /data/php56/bin/phpize >

php7 图形用户界面GUI 开发示例

2020-02-22
本文实例讲述了php7 图形用户界面GUI 开发.分享给大家供大家参考,具体如下: 一.下载指定系统扩展 http://pecl.php.net/package/ui http://pecl.php.net/package/ui/2.0.0/windows 由于我的系统是64位win10,php版本是7.1,所以选择7.1 Thread Safe (TS) x64,linux用户可以自行下载源码包,编译安装. 解压php_ui-2.0.0-7.1-ts-vc14-x64.zip,把php_ui.

php 多进程编程父进程的阻塞与非阻塞实例分析

2020-02-21
本文实例讲述了php 多进程编程父进程的阻塞与非阻塞.分享给大家供大家参考,具体如下: php中进程的阻塞,主要是父进程等待子进程退出. 1.php代码如下: <?php //定义进程数量 define('FORK_NUMS', 5); //用于保存进程pid $pids = array(); //我们创建5个子进程 for ($i = 0; $i < FORK_NUMS; ++$i) { $pids[$i] = pcntl_fork(); if ($pids[$i] == -1) { die

php 使用ActiveMQ发送消息,与处理消息操作示例

2020-02-21
本文实例讲述了php 使用ActiveMQ发送消息,与处理消息操作.分享给大家供大家参考,具体如下: 我们以一个简单的用户注册为例,当用户点击注册按钮后,我们发送一个消息,后台php接收到该消息然后处理. 1.php代码如下: <?php $stomp = new Stomp('tcp://192.168.1.222:61613'); $obj = new Stdclass(); //下面这些数据,实际中是用户通过前端页面post来的,这里只做演示 $obj->username = 'test

PHP pthreads v3下worker和pool的使用方法示例

2020-02-20
本文实例讲述了PHP pthreads v3下worker和pool的使用方法.分享给大家供大家参考,具体如下: 有些人会想,明明用thread已经可以很好的工作了,为什么还要搞个worker和pool? 之所以要用到worker和pool还是因为效率,因为系统创建一个新线程代价是比较昂贵,每个创建的线程会复制当前执行的整个上下文. 尽可能的重用线程可以让我们的程序更高效. 一个简单的worker例子: <?php //创建自定义work类,给work取个名字,方便查看 class Work e

PHP pthreads v3下的Volatile简介与使用方法示例

2020-02-20
本文实例讲述了PHP pthreads v3下的Volatile简介与使用方法.分享给大家供大家参考,具体如下: 由于pthreads v3中引入了Threaded对象自动不变性的概念,所以当我们在构造函数中给成员设置为数组时,在其他地方就无法对成员再次改写了. 例子如下: <?php //pthreads v3引入了Threaded对象自动不变性的概念 //如果成员被设置成Threaded对象,那么它将不能被再次改写 //当然,这主要还是为了性能优化,但有时我们又需要改写成员,那么就需要继承自

php ActiveMQ的安装与使用方法图文教程

2020-02-20
本文实例讲述了php ActiveMQ的安装与使用方法.分享给大家供大家参考,具体如下: 一.ActiveMQ是什么? ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线.支持多种语言客户端(Java,C,C++,C#,Python,Ruby,Perl,PHP), 支持多种协议(OpenWire,Stomp REST,WS Notification,XMPP,AMQP). 二.安装jdk http://www.oracle.com/technetwork/java/javase

PHP pthreads v3在centos7平台下的安装与配置操作方法

2020-02-20
本文实例讲述了PHP pthreads v3在centos7平台下的安装与配置操作方法.分享给大家供大家参考,具体如下: 我的centos版本是7.4.1708,php的版本是7.2.4(注意要是线程安全版),如下图所示: 首先我们在如下网址下载好pthreads的源码: http://pecl.php.net/package/pthreads 如:pthreads-3.1.6.tgz 1.解压.并进入目录 > tar xf pthreads-3.1.6.tgz > cd pthreads-3

php操作redis数据库常见方法实例总结

2020-02-19
本文实例讲述了php操作redis数据库常见方法.分享给大家供大家参考,具体如下: 一.安装php_redis扩展,用以操作redis http://pecl.php.net/package/redis 选择自已系统php版本对应的扩展. 二.redis连接与验证 <?php //创建一个redis客户端 $redis = new Redis(); //连接redis服务,指定主机,端口,和超时时间 $redis->connect('127.0.0.1', 6379, 60); //进行密码验

php使用redis的有序集合zset实现延迟队列应用示例

2020-02-19
本文实例讲述了php使用redis的有序集合zset实现延迟队列.分享给大家供大家参考,具体如下: 延迟队列就是个带延迟功能的消息队列,相对于普通队列,它可以在指定时间消费掉消息. 延迟队列的应用场景: 1.新用户注册,10分钟后发送邮件或站内信. 2.用户下单后,30分钟未支付,订单自动作废. 我们通过redis的有序集合zset来实现简单的延迟队列,将消息数据序列化,作为zset的value,把消息处理时间作为score,每次通过zRangeByScore获取一条消息进行处理. <?php

PHP Beanstalkd消息队列的安装与使用方法实例详解

2020-02-19
本文实例讲述了PHP Beanstalkd消息队列的安装与使用方法.分享给大家供大家参考,具体如下: 一.Beanstalkd是什么? Beanstalkd是一个高性能,轻量级的分布式内存队列 二.Beanstalkd特性 1.支持优先级(支持任务插队) 2.延迟(实现定时任务) 3.持久化(定时把内存中的数据刷到binlog日志) 4.预留(把任务设置成预留,消费者无法取出任务,等某个合适时机再拿出来处理) 5.任务超时重发(消费者必须在指定时间内处理任务,如果没有则认为任务失败,重新进入队列