php中for循环的回调问题。请教高手!

小鱼n_n 2013-09-26 10:21:07
有一个异步方法如下:
function hello($message,$test,$txt){    ​
​for($k=0;$k<$con;$k++)
​ {
​ ​$fp=fsockopen('localhost',8080,&$errno,&$errstr,5);
​ ​fwrite($fp,"GET /Hello/js_push?message=".$message."&test=".$test."&txt=".$txt." \r\n");
​}
}

js_push函数如下:
function js_push(){
​ ignore_user_abort();
​ set_time_limit(0);
​...
​fwrite($fps, date('Y-m-d H:i:s').$value." \r\n");
​...
}

问题:我想要在js_push里加一个回调函数,使每次的fwrite($fps, date('Y-m-d H:i:s').$value." \r\n");执行完之后,再去执行上面for循环里的第二,第三,,,
要如何实现呢?
...全文
317 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
小鱼n_n 2013-09-29
  • 打赏
  • 举报
回复
引用 11 楼 hellon_no 的回复:
[quote=引用 5 楼 xuzuning 的回复:] 你在 fwrite($fp,"GET /Hello/js_push?m.... 后 while(fgets($fp)); 就可以了
如果,我想每次调用hello()函数的时候,就开一个进程,要怎么做?[/quote]外部模块?比如呢?什么外部模块比较好用? 还有,如果我想让for循环10次,再执行一次while(fgets($fp));要怎么实现呢?
小鱼n_n 2013-09-26
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
什么意思?你不是要等待返回吗? 执行完之后,再去执行上面for循环里的第二,第三,,,不就是等待的意思吗?
哦,之前没用过,所以我才问问哪
xuzuning 2013-09-26
  • 打赏
  • 举报
回复
什么意思?你不是要等待返回吗? 执行完之后,再去执行上面for循环里的第二,第三,,,不就是等待的意思吗?
小鱼n_n 2013-09-26
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
你在 fwrite($fp,"GET /Hello/js_push?m.... 后 while(fgets($fp)); 就可以了
这是什么意思呢?
小鱼n_n 2013-09-26
  • 打赏
  • 举报
回复
引用 6 楼 snmr_com 的回复:
很晕,那直接把js_push()放在hello()的for里面就行了
function hello($message,$test,$txt){    ​
    ​for($k=0;$k<$con;$k++)
    ​     {
       ​ ​$fp=fsockopen('localhost',8080,&$errno,&$errstr,5);
        js_push();
    ​    ​fwrite($fp,"GET /Hello/js_push?message=".$message."&test=".$test."&txt=".$txt." \r\n");
    ​}
}
这样不行么?
不可以啊、这不就不是异步了吗?
ImN1 2013-09-26
  • 打赏
  • 举报
回复
很晕,那直接把js_push()放在hello()的for里面就行了
function hello($message,$test,$txt){    ​
    ​for($k=0;$k<$con;$k++)
    ​     {
       ​ ​$fp=fsockopen('localhost',8080,&$errno,&$errstr,5);
        js_push();
    ​    ​fwrite($fp,"GET /Hello/js_push?message=".$message."&test=".$test."&txt=".$txt." \r\n");
    ​}
}
这样不行么?
xuzuning 2013-09-26
  • 打赏
  • 举报
回复
你在 fwrite($fp,"GET /Hello/js_push?m.... 后 while(fgets($fp)); 就可以了
小鱼n_n 2013-09-26
  • 打赏
  • 举报
回复
引用 3 楼 snmr_com 的回复:
两个函数分属两个php文件?
没有,在一个PHP文件里。
ImN1 2013-09-26
  • 打赏
  • 举报
回复
两个函数分属两个php文件?
小鱼n_n 2013-09-26
  • 打赏
  • 举报
回复
引用 1 楼 snmr_com 的回复:
大致地,没看明白……
就是,hello() 这个函数的for循环里的异步,每次调用的都是js_push()函数。我想让每次js_push()函数执行完之后,hello()这个函数的for循环再向下执行。
ImN1 2013-09-26
  • 打赏
  • 举报
回复
大致地,没看明白……
ImN1 2013-09-26
  • 打赏
  • 举报
回复
引用 11 楼 hellon_no 的回复:
如果,我想每次调用hello()函数的时候,就开一个进程,要怎么做?
php本身没有多线程、多进程,你说做“异步”我就奇怪了 所以才说
引用 1 楼 snmr_com 的回复:
大致地,没看明白……
就算想模拟实现多线程、进程,也只能依靠系统和外部模块
小鱼n_n 2013-09-26
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
你在 fwrite($fp,"GET /Hello/js_push?m.... 后 while(fgets($fp)); 就可以了
如果,我想每次调用hello()函数的时候,就开一个进程,要怎么做?

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧