php如何实现异步操作 - -把echo嵌进mail函数就行了呗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如注册域名类的程序,实际过程是,用户在我的网站填写注册信息后,我将信息保存在数据库,同时通过主程序向服务商提供的域名注册接口提交信息,我希望将信息提交过去后,不管网关是否处理完成,都继续进行下边的程序,比如写数据库、向用户显示提示信息,这就是一个异步的过程吧,如何能够实现呢?例如下面的模型<?php1接受用户域名注册信息2向域名注册接口提交注册信息3将用户的请求写入数据库4向用户显示提示信息?>如果能够让不等2结束就执行34呢 你是不是准备实现类似进度条的那种样子,可以用ajax实现 怎么什么都ajax啊,ajax是由用户发起的吧,别搞混了,我是服务器端的操作 php本身就是单线程的吧?? 线程都没法用异步操作就更不可能.估计得ajax了, 服务器端也客户端配合实现吧. 用ajax实现。将mail单独写在一个文件里,然后通过xmlHttpRequest对象异步调用这个文件。这样后台就执行它的mail去了,同时你可以做其它工作。等mail执行完,会自动调用回调函数(需要在回调函数里判断状态,是否执行完成)。在回调函数里设置通知机制当完成mail后通知就可以了 leoo2sk() ,这还不是一样要等mail完了再通知吗,我说的是同时进行啊 if(mail(....))用mail的返回值判断 使用system,exec之类的函数来后台运行php程序 ob_end_flush();echo ' ';flush();mail(); <?php $pid = pcntl_fork (); if ( $pid == - 1 ) { die( 'could not fork' ); } else if ( $pid ) { // we are the parent pcntl_wait ( $status ); //Protect against Zombie children } else { // we are the child } ?> 这段代码可以解决你的问题。但是只能跑在linux下 file_exists 的查找速度。 Ubuntu Eclipse无法正常启动 后端是怎么给前端传递数据的 cookie数组无法删除,无法写入。session的存活时间太短了。。。 有没有什么办法可以让Ajax停止的同时,php后台也同时停止? 请大家注意phpcms.cn的cms产品phpcms已全线开源并免费! thinkPHP,分页查询问题 PHP CodeIgniter 时间相减 和 大小相减 疑问 用php做过手机短信发送的进来 在dreamweaver中写php程序为什么经常出现乱码? ewebeditor版-php3.8的问题 PHP判断文件夹是否存在的方法
1接受用户域名注册信息
2向域名注册接口提交注册信息
3将用户的请求写入数据库
4向用户显示提示信息
?>
如果能够让不等2结束就执行34呢
估计得ajax了, 服务器端也客户端配合实现吧.
echo ' ';
flush();
mail();
$pid = pcntl_fork ();
if ( $pid == - 1 ) {
die( 'could not fork' );
} else if ( $pid ) {
// we are the parent
pcntl_wait ( $status ); //Protect against Zombie children
} else {
// we are the child
}
?>
这段代码可以解决你的问题。但是只能跑在linux下