php 异步调用

来源:互联网 发布:组策略禁止软件运行 编辑:程序博客网 时间:2024/05/21 13:08

比较耗时的操作采用异步调用,看两种方法 php_curl, fsockopen

c.php

ignore_user_abort(true);set_time_limit(0);function c (){    $ch = curl_init();    $curl_opt = array(        CURLOPT_URL=>'http://localhost/ceshi/a.php',        CURLOPT_RETURNTRANSFER=>1,        CURLOPT_TIMEOUT=>1    );    curl_setopt_array($ch, $curl_opt);    curl_exec($ch);    curl_close($ch);    echo 11;}//c();function doRequest($url, $param=array()){    $urlinfo = parse_url($url);    $host = $urlinfo['host'];    $path = $urlinfo['path'];    $query = isset($param)? http_build_query($param) : '';    $port = 80;    $errno = 0;    $errstr = '';    $timeout = 10;    $fp = fsockopen($host, $port, $errno, $errstr, $timeout);    $out = "POST ".$path." HTTP/1.1\r\n";    $out .= "host:".$host."\r\n";    $out .= "content-length:".strlen($query)."\r\n";    $out .= "content-type:application/x-www-form-urlencoded\r\n";    $out .= "connection:close\r\n\r\n";    $out .= $query;    fputs($fp, $out);    fclose($fp); }function c1(){   $url = 'http://localhost/ceshi/a.php';   $param = array('name'=>'小张');   doRequest($url,$param);   echo 123;}c1();

a.php

function test(){  sleep(100); }echo test();

通过执行c.php 可以看到效果,不用等a.php执行完,就可以看到返回效果

原文请看这篇 php 异步调用方法 参考这篇博客写的一个例子

0 0
原创粉丝点击