首页 / PHP / php多线程求答疑,该怎么处理
php多线程求答疑,该怎么处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php多线程求答疑,该怎么处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1217字,纯文字阅读大概需要2分钟。
内容图文
![php多线程求答疑,该怎么处理](/upload/InfoBanner/zyjiaocheng/222/7f6c2ff67d194b4bae15a0a5b2bb07d1.jpg)
在网上看到一些demo,很多一样的,自己拿到本机测试,出了点问题:
//a.php
function runThread(){
$fp = fsockopen('localhost', 80, $errno, $errmsg);
fputs($fp, "GET /a.php?act=b");
fclose($fp);
}
function a(){
$fp = fopen('result_a.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n");
fclose($fp);
}
function b(){
$fp = fopen('result_b.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n"); fclose($fp);
}
if(!isset($_GET['act'])) $_GET['act'] = 'a';
if($_GET['act'] == 'a'){
runThread();
a();
}
else if($_GET['act'] == 'b') b();
?>
每次我访问localhost/a.php时,只能在result_a.log中写入记录,result_b.log中从来不会写入记录,我确定我的php环境中已经可以启用fsocket扩展了的,求高手指点一下 多线程 php 分享到:
------解决方案--------------------
因为你默认的$_GET['act'] 是 执行 a()函数
执行localhost/a.php?act=b试试
------解决方案--------------------
应该是fputs里面的数据包头部些少了什么造成的。
我的意见:
1 使用firebug看看就知道应该写什么,观察你请求的包头
2 放弃fsock系列函数,很多地方都不支持这个,不过你可以使用curl来模拟你的请求。
------解决方案--------------------
使用firebug看看错误,或者用echo 检查程序执行到哪了?没执行到哪一步一步的检查。
内容总结
以上是互联网集市为您收集整理的php多线程求答疑,该怎么处理全部内容,希望文章能够帮你解决php多线程求答疑,该怎么处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。