[英]PHP - How to check a script version
我有一个小脚本,想从管理员页脚中检测脚本版本。 在管理员footer.php上,我放了这段代码。
<?php
define('VERSION', '1.0');
$fp = fopen("http://v.domain.com/version.txt", "r");
while ($line = fgets($fp)) {
$line;
if (VERSION != $line) {
?>
<div id="upgrade">
<a href="http://domain.com/download/" target="_blank">Download a new version [<?php echo $line; ?>]</a>
</div>
<?php
}
}
?>
在version.txt中只有1.0.1
,可以很好地比较版本。
问题出在这里,客户端站点会变慢。 如何解决这个问题?
之所以缓慢,是因为运行您的PHP代码的服务器必须通过HTTP访问v.domain.com并下载version.txt的副本。 发生这种情况时,PHP就坐在那里等待。
为什么即使页脚位于页脚中,也会使整个页面变慢? 因为Apache在将PHP页面的输出吐出到浏览器之前会缓存一点时间。 即使刷新输出缓冲区,有时浏览器也会这样做,而这是您无法控制的。
听起来您想发布一些基于PHP的工具,并在页脚中进行自动版本检查,对吗?
如果是这样,那么按照您的操作方式会遇到一些问题:
您无需在每次页面加载时都检查版本。 将您上次检查的日期保存在某个地方,仅___天后再检查一次。 (希望您已经在执行此操作,为简单起见,仅从示例中删除了它)
从另一台服务器读取这样的文件是一个坏主意。 正如您现在所遇到的,如果您的v.domain.com忙起来,可能会导致速度变慢。 如果出现故障,则您的PHP将花费更长的时间,因为它正在等待超时。
更好的方法是通过Javascript。 页面加载后,您将拥有使用AJAX的javascript函数。 如果您不熟悉Javascript,可能会有一些学习上的弯路,但这是处理您的情况的理想方法。
如果文件只是版本号,那么我建议尝试:
$version = file_get_contents('http://wwww.example.com');
if (VERSION != trim($version)) {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.