繁体   English   中英

PHP-如何检查脚本版本

[英]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的工具,并在页脚中进行自动版本检查,对吗?

如果是这样,那么按照您的操作方式会遇到一些问题:

  1. 您无需在每次页面加载时都检查版本。 将您上次检查的日期保存在某个地方,仅___天后再检查一次。 (希望您已经在执行此操作,为简单起见,仅从示例中删除了它)

  2. 从另一台服务器读取这样的文件是一个坏主意。 正如您现在所遇到的,如果您的v.domain.com忙起来,可能会导致速度变慢。 如果出现故障,则您的PHP将花费更长的时间,因为它正在等待超时。

更好的方法是通过Javascript。 页面加载后,您将拥有使用AJAX的javascript函数。 如果您不熟悉Javascript,可能会有一些学习上的弯路,但这是处理您的情况的理想方法。

如果文件只是版本号,那么我建议尝试:

file_get_contents()

$version = file_get_contents('http://wwww.example.com');
if (VERSION != trim($version)) {
}

暂无
暂无

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

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