最近看到pecl上面还有扩展下载次数统计,想着给redis刷一刷下载次数把,本来是想用file_get_contents/curl模拟下载redis的安装包,但是觉得发起http完整请求对pecl官网造成流量压力,我只需要http协议连接上再关闭即可,不需要真正下载,于是有了下面的代码:
/**
* 刷redis_pv
*/
public function redis()
{
//版本列表
$versions = [
'4.5.4',
'4.5.3',
'4.5.2',
'4.4.1',
'4.5.1',
'4.5.0',
'4.4.1',
'4.4.1',
'4.4.1',
'4.4.1',
'4.4.1',
'4.4.1',
'4.4.1',
'4.4.1',
'4.4.1',
'4.4.8',
'4.4.7',
'4.4.6',
'4.4.5',
'4.4.4',
'4.4.3',
'4.4.2',
'4.3.6',
'4.4.1',
'4.4.0',
'4.3.5',
'4.3.4',
];
$url = 'https://pecl.php.net/get/redis-';
$i = 500;
while ($i--)
{
$version_key = array_rand($versions, 1);
$version_value = $versions[$version_key];
$new_url = $url . $version_value . '.tgz';
fopen($new_url, "r");
echo $new_url . PHP_EOL;
sleep(5);
}
} 通过http推送消息给socket,socket服务再向客户端推送<?php /* * Socket推送 * 请用守护进程方式启动php msgservice.php & (socket只...
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...
主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /** * 订单任务 */ class Order { &n...
<?php /** * @throws Exception */ function curl() { throw new \Exception('err...
在项目下的composer配置文件修改(PaySdk是我这里一个支付sdk的目录,包含各种各样的支付sdk,这样写的意思让composer自动把PaySdk下的所有文件自动加载):"autoload": { &...