php技巧

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.任务超时重发(消费者必须在指定时间内处理任务,如果没有则认为任务失败,重新进入队列

php使用redis的几种常见操作方式和用法示例

2020-02-18
本文实例讲述了php使用redis的几种常见操作方式和用法.分享给大家供大家参考,具体如下: 一.简单的字符串缓存 比如针对一些sql查询较慢,更新不频繁的数据进行缓存. <?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379, 60); $sql = 'select * from tb_order order by id desc limit 10'; //伪代码,从数据库中获取数据 $data = $db->quer

php使用pthreads v3多线程实现抓取新浪新闻信息操作示例

2020-02-18
本文实例讲述了php使用pthreads v3多线程实现抓取新浪新闻信息.分享给大家供大家参考,具体如下: 我们使用pthreads,来写一个多线程的抓取页面小程序,把结果存到数据库里. 数据表结构如下: CREATE TABLE `tb_sina` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `url` varchar(256) DEFAULT '' COMMENT 'url地址', `title` varchar

PHP pthreads v3下同步处理synchronized用法示例

2020-02-18
本文实例讲述了PHP pthreads v3下同步处理synchronized用法.分享给大家供大家参考,具体如下: 之所以会用到同步,是因为如果多个线程中对同一个资源进行操作时,会发生混乱. 比如2个线程对变量进行加1操作,第1个线程还没来的及改写数据时,第2个线程就对变量进行操作了,那变量最终的结果就是未知的,这个时候就需要同步来进行控制了. 例子如下: <?php class Count extends Thread { public $cnt = 0; public function r

PHP pthreads v3使用中的一些坑和注意点分析

2020-02-18
本文实例讲述了PHP pthreads v3使用中的一些坑和注意点.分享给大家供大家参考,具体如下: 一.子线程无法访问父线程的全局变量,但父线程可以访问子线程的变量 <?php class Task extends Thread { public $data; public function run() { global $num; var_dump($num); $this->data = 'abc'; //这是打印null var_dump($GLOBALS); $GLOBALS['te

PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC

2020-02-15
php循环输出26个大小写英文字母 for($i=65;$i<91;$i++){ echo strtolower(chr($i)).' ';//输出小写字母 echo strtoupper(chr($i)).' ';//输出大写字母 } PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC for ($i = 0; $i <= 1000; $i++) { $y = ($i / 26); echo $i,"=>"; if ($y >= 1) { $y

PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解

2020-02-11
本文实例讲述了PHP+ajax实现上传.删除.修改单张图片及后台处理逻辑操作.分享给大家供大家参考,具体如下: 2019-07-04更新 更新修改原因: 前台界面ui显示不好看 后台处理逻辑混乱,涉及到多张图片处理起来很麻烦,所以修改成通过ajax上传/删除图片. 效果: 上传前: 上传后: 撤销后: 以下是更新的代码: HTML 代码: <div class="form-group"> <label for="username" class=&q

PHP实现单例模式建立数据库连接的方法分析

2020-02-08
本文实例讲述了PHP实现单例模式建立数据库连接的方法.分享给大家供大家参考,具体如下: 理解php单例模式 一.什么是单例 wiki百科:单例模式,也叫单子模式,是一种常用的软件设计模式. 在应用这个模式时,单例对象的类必须保证只有一个实例存在. 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为. 二.为什么用单例 实际项目中像数据库查询,日志输出,全局回调,统一校验等模块.这些模块功能单一,但需要多次访问,如果能够全局唯一,多次复用会大大提升性能.这也就是单例存在的必

php数组指针函数功能及用法示例

2020-02-08
本文实例讲述了php数组指针函数功能及用法.分享给大家供大家参考,具体如下: 数组指针函数有reset(),prev(),current(),next(),end(),key(),each() 其中reset(),prev(),current(),next(),end(),都是只与数组的值有关的函数,key()只与数组键,有关的函数,each()可以获得数组的值和键 reset()函数,参数是一个数组,引用传值,将一个数组的内部指针重置到首位,也就是数组的第一个元素所在的位置,然后返回第一个元素