繁体   English   中英

在服务器上运行脚本,以创建一个数组(通过php),以后可以访问该数组

[英]Run a script on server that creates an array (via php) that can be accessed later

我有一个Icecast服务器(流式互联网广播),但我没有完全访问权限,而且我无法更改任何直接设置。 所有Icecast服务器都有一个自生成的xml,该xml显示有关流的当前信息(侦听器,持续时间,流名称,最重要的是当前播放的歌曲标题),但是它无法显示最后5或10条曲目。

[顺便说一句:有一些方法可以获取此信息,但是它要么处理不正确,要么与其他信息混杂在一起,并且不易访问。 请不要专注于这一部分,因为我的问题是关于其他问题。 我只想给你问题的背景]

我已经有一个使用此xml文件并提取当前歌曲标题的PHP脚本。 我想创建另一个PHP脚本,将这个歌曲标题添加到数组中。 它将每30秒运行一次此脚本,并将当前歌曲名称添加到数组中。 如果当前歌曲的标题与数组中的第一首(最新的歌曲添加到数组的“顶部”)匹配,则不添加任何项目(以避免重复标题超过30秒)。 如果项目数达到11,则删除最后一个项目,以使数组保持为10。

有了这个数组,我可以随时调用它,并获得最近10首曲目的可靠来源。

我的问题是:如何通过PHP创建一个每30秒运行一次的数组,并且可以通过另一个PHP脚本轻松访问? 还是有比PHP脚本更好的方法呢? 如果是这样,请详细说明。

我知道MySQL是一个选择,但我宁愿避免这样做,因为对于这样的事情似乎有点过分了。 我对MySQL的使用也不是那么熟悉。

我已经看到了一些有关在服务器上计划脚本运行cron作业的讨论。 我不知道这是否是最好的解决方案,但是如果是这样,您能否更详细,更具体? 我对cron一无所知。

编辑:我希望此数组对所有用户通用,而不是相对的。 该数组不能存在于单个用户的浏览器中,而必须位于服务器上。

如果您不想使用数据库,只需将其保存到文件中?

http://php.net/manual/zh/function.file-put-contents.php

Cron作业被设置为以编程方式在服务器上工作,并且它实际上与任何客户端都不相关。 所以这不是您想要的。

如果您是我,我将创建一个cookie并将当前的跟踪数据分配给它。 这可以很容易地用Javascript处理。 您所需要做的就是设置一个setInterval函数,以检查它是否为最后一个轨道,如果不是,则处理cookie中的数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM