PHP如何接收动态数据保存并实时显示到网页上?
发布网友
发布时间:2022-04-22 09:55
我来回答
共2个回答
热心网友
时间:2023-07-21 04:24
头部加上超时控制,但对于很多服务器无效,因为服务器输出超时很多在服务器控制,所以建议用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”即可,教程有很多,我就不粘贴了。
热心网友
时间:2023-07-21 04:24
利用ajax发送请求,返回json数组,然后动态创建