
正文
php异步返回数据 php 异步函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
PHP如何异步处理json返回数据
ajax会吗 不要给action加提交链接 给form设一个点击事件,用js获取input的值 用axaj提交并返回
相关问答
Q1: php 怎样实现异步处理接口
首先 php 7以下 不支持异步方式(有个类库 可以勉强算是支持了异步 名字忘了)
其次 php脚本 由于是逐行解析的,不常驻线程(当然可以设置为永久连接,不自动超时退出) 异步意义不大。
第三 我怀疑你是想问javascript的异步请求? 如何用php处理?
如果没问错的话 可以用其他方式来解决异步问题,就是同时发出多个web request请求 等多个请求成功之后将结果写入数据库(文件) 然后 有一个 一直在等待结果的php请求进程 一旦读取到了这个写入完毕的(数据库)文件结果 马上返回给浏览器
Q2: php 异步回调接收到信息后怎么返回success
如何在$ajax方法php异步返回数据的success回调方法中获取当前对象 jquery.ajax方法在执行成功之后php异步返回数据,
Q3: 如何让thinkphp程序走异步回调
class Program
{
public delegate int SumCallback(int x, int y);
public int Sum(int x, int y)
{
Console.WriteLine("等待...");
System.Threading.Thread.Sleep(2000);
return x + y;
}
public void Callback(IAsyncResult ar)
{
Console.WriteLine("回调...");
AsyncResult result = ar as AsyncResult;
if (result!=null)
{
SumCallback caller = (SumCallback)result.AsyncDelegate;
Console.WriteLine(caller.EndInvoke(result));
}
}
static void Main(string[] args)
{
SumCallback sc = new Program().Sum;
IAsyncResult result = sc.BeginInvoke(1, 2,new Program().Callback, sc);
Console.WriteLine("主线程...");
Console.ReadKey(true);
}
}
Q4: PHP如何调用API用异步方式回执过来的消息?
单独写一个接口php异步返回数据,然后用ajax触发调用就可以php异步返回数据,返回JSON就可以
Q5: PHP异步处理有哪些方法
使用Ajax 与 img 标记
原理,服务器返回的html中插入Ajax 代码或 img 标记,img的src为需要执行的程序。
优点:实现简单,服务端无需执行任何调用
缺点:在执行期间,浏览器会一直处于loading状态,因此这种方法并不算真正的异步调用。
$.get("doRequest.php", { name: "fdipzone"} );
img src="doRequest.php?name=fdipzone"
使用popen
使用popen执行命令,语法:
优点:执行速度快
缺点:
1).只能在本机执行
2).不能传递大量参数
3).访问量高时会创建很多进程
// popen — 打开进程文件指针
resource popen ( string $command , string $mode )
pclose(popen('php /home/fdipzone/doRequest.php ', 'r'));
使用curl
设置curl的超时时间 CURLOPT_TIMEOUT 为1 (最小为1),因此客户端需要等待1秒
?php
$ch = curl_init();
$curl_opt = array(
CURLOPT_URL, ''
CURLOPT_RETURNTRANSFER,1,
CURLOPT_TIMEOUT,1
);
curl_setopt_array($ch, $curl_opt);
curl_exec($ch);
curl_close($ch);
?
使用fsockopen
fsockopen是最好的,缺点是需要自己拼接header部分。
?php
$url = '';
$param = array(
'name'='fdipzone',
'gender'='male',
'age'=30
);
doRequest($url, $param);
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);
}
?
注意:当执行过程中,客户端连接断开或连接超时,都会有可能造成执行不完整,因此需要加上
ignore_user_abort(true); // 忽略客户端断开
set_time_limit(0); // 设置执行不超时
php异步返回数据的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php 异步函数、php异步返回数据的信息别忘了在本站进行查找喔。







