PHP如何接收动态数据保存并实时显示到网页上?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP如何接收动态数据保存并实时显示到网页上?相关的知识,希望对你有一定的参考价值。

<?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>");
?>

上面的代码是连接服务器登录的,登录后服务器会不停的发送数据过来,请问如何接收服务器发过来的数据并保存到数据或文件中,并实时在网页显示出来,就是有数据来就显示有数据来就显示

头部加上超时控制,但对于很多服务器无效,因为服务器输出超时很多在服务器控制,所以建议用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”即可,教程有很多,我就不粘贴了。

参考技术A 利用ajax发送请求,返回json数组,然后动态创建

以上是关于PHP如何接收动态数据保存并实时显示到网页上?的主要内容,如果未能解决你的问题,请参考以下文章

怎样用PHP显示动态时间

VB如何获取网页动态数据

如何使用 Django 模型在网页上获取动态数据?

如何让EXCEL表格动态显示在桌面上

如何使用 javascript/node js 从数据库中将图片动态加载到网页上

如何实时抓取动态网页数据?