早睡早起,方能养生
Sleep early rise early, way to keep healthy

PHP多线程示例

super
2023-11-10 16:36
views 1050

如果没有安装多线程拓展,请看

 

https://rongsp.com/article/371.html

 

<?php

function curl_post($url, $post_data)
{
    $header = [
        'Accept: application/json',
    ];

    // 初始化
    $curl = curl_init();
    // 设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    // 设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, false);
    // 设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    // 超时设置
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);

    // 超时设置,以毫秒为单位
    // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);

    // 设置请求头
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE );

    // 设置post方式提交
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    // 执行命令
    $data = curl_exec($curl);
    $error = curl_error($curl);
    curl_close($curl);

    // 显示错误信息
    if ($error) {
        // print "Error: " . $error;
        return ['code' => 500, 'msg' => $error];
    } else {
        // 打印返回的内容
        // var_dump($data);
        // print_r(json_decode($data, true));
        return ['code' => 200, 'msg' => '', 'data' => $data];
    }
}
class Login extends Thread
{
    private $account;
    private $password;
    public $res;

    public function __construct($account, $password) {
        $this->account = $account;
        $this->password = $password;
    }

    public function run() {
        $this->res = curl_post('http://xxxx.net/login.php', ['account' => $this->account, 'password' => $this->password]);
    }
}

$thread1 = new Login(1, 1);
$thread2 = new Login(2, 2);
$thread3 = new Login(3, 3);
$thread1->start();
$thread2->start();
$thread3->start();
$thread1->join();
$thread2->join();
$thread3->join();


分享
0 条讨论
top