PHP如何接收动态数据保存并实时显示到网页上?
<?php//Createthesocketandconnect$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);$c...
<?php
// Create the socket and connect
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'116。236。128。220', 14580);
// Write some test data to our socket
if(!socket_write($socket, "user NoCall pass -1 vers test 1.0 filter b/B* \r\n"))
{
echo("<p>Write failed</p>");
}
// Read any response from the socket
while($buffer = socket_read($socket, 64, PHP_NORMAL_READ))
{
echo json_encode($buffer); //转换为json数据输出
}
echo("<p>Done Reading from Socket</p>");
?>
上面的代码是连接服务器登录的,登录后服务器会不停的发送数据过来,请问如何接收服务器发过来的数据并保存到数据或文件中,并实时在网页显示出来,就是有数据来就显示有数据来就显示 展开
// Create the socket and connect
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'116。236。128。220', 14580);
// Write some test data to our socket
if(!socket_write($socket, "user NoCall pass -1 vers test 1.0 filter b/B* \r\n"))
{
echo("<p>Write failed</p>");
}
// Read any response from the socket
while($buffer = socket_read($socket, 64, PHP_NORMAL_READ))
{
echo json_encode($buffer); //转换为json数据输出
}
echo("<p>Done Reading from Socket</p>");
?>
上面的代码是连接服务器登录的,登录后服务器会不停的发送数据过来,请问如何接收服务器发过来的数据并保存到数据或文件中,并实时在网页显示出来,就是有数据来就显示有数据来就显示 展开
2个回答
展开全部
头部加上超时控制,但对于很多服务器无效,因为服务器输出超时很多在服务器控制,所以建议用cmd脚本方式运行此程序:
<?php
set_time_limit(0); //禁用脚本超时
// Create the socket and connect
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'116。236。128。220', 14580);
// Write some test data to our socket
if(!socket_write($socket, "user NoCall pass -1 vers test 1.0 filter b/B* \r\n"))
{
echo("<p>Write failed</p>");
}
if(!file_exists('socket_log.html')){
file_put_contents('socket_log.html', '<script>
var xx = setInterval(function(){ //每5秒刷新一次页面
window.location.reload();
}, 5000);
</script>');
}
// Read any response from the socket
while($buffer = socket_read($socket, 64, PHP_NORMAL_READ))
{
echo json_encode($buffer); //转换为json数据输出
//记入文件
file_put_contents('socket_log.html', json_encode($buffer), FILE_APPEND);
}
echo("<p>Done Reading from Socket</p>");
使用方法:用命令行方式运行此脚本
php script.php
脚本会一直运行到接收数据结束,并持续将收到的数据写入socket_log.html文件。
在浏览器打开socket_log.html页面,此页面会自动每5秒刷新一次,来显示最新的数据。
确保程序有权限创建及写入socket_log.html文件
追问
如果用CMD方式运行,能给出代码么?
如果要写入数据库怎样处理呢?一行一个数据。
谢谢
追答
以windows下CLI运行php脚本为例:
找到你的php.exe的路径,比如我的是"D:\Winginx\php5\php.exe";
打开控制台(开始——运行——cmd)
在控制台上黏贴或输入php.exe的路径+空格+php脚本文件的路径,比如
D:\Winginx\php5\php.exe D:\PhpScript\test.php
回车即可。注意有脚本内有中文输出时,脚本要保存为GBK\GB2312编码,不然在cmd下会乱码。
至于数据库读写数据,你百度一下“PHP Mysql”或者“PHP SQLite”即可,教程有很多,我就不粘贴了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询