PHP文件系统函数popen异步执行任务

官方文档 https://www.php.net/manual/zh/function.popen.php

功能

popen — 打开进程文件指针

说明

popen (string $command , string $mode ): resource

返回值

返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用 pclose() 来关闭。此指针可以用于 fgets(),fgetss() 和 fwrite()。 当模式为 'r',返回的文件指针等于命令的 STDOUT,当模式为 'w',返回的文件指针等于命令的 STDIN。
如果出错返回 false。


范例

<?php
echo microtime(true).PHP_EOL;
echo PHP_BINARY;echo PHP_EOL;
echo PHP_OS;echo PHP_EOL;
echo PHP_VERSION;echo PHP_EOL;
$task = [
    'iyuu.cn',
    'aliyun.iyuu.cn',
    'demo.iyuu.cn'
];
function forkTask($cmd = '', $logFile = '') {
    if(DIRECTORY_SEPARATOR === '\\')
    {
        pclose(popen('start /B ping '.$cmd.' -t >> '.$logFile.'.txt', 'r'));
    } else {
        pclose(popen('ping '.$cmd.' >> /root/'.$logFile.'.txt', 'r'));
    }
}
array_walk($task, function($v, $k){
    forkTask($v, $k);
});
echo microtime(true).PHP_EOL;
最后修改:2021 年 01 月 18 日 01 : 04 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论