脚本的版本更新脚本

时间:2013-08-25 19:36:35

标签: php web

我将尝试使其易于理解并希望它有意义。

我有一个PHP脚本/模板,我希望最终用户能够知道我何时更新了某些内容(例如模板更改或错误修正),他们可以单击链接从远程主机下载更新版本。我试过发布的脚本 PHP - How to check a script version我得知这个脚本正常工作:

<?php define('REMOTE_VERSION', http://mysite.com/_client/client_name/update/version_check.txt');
    define('VERSION', '2.0.1');
    $script = file_get_contents(REMOTE_VERSION);
    $version = VERSION;
    if($version == $script) {
        echo "<div class=success> 
    <p>You have the latest version!</p> 
    </div>";
    } else {
        echo "<div class=error> 
    <p>There is a update available!</p> 
    </div>";
    }?>

好吧...我的远程服务器上的.txt文件只有2.0.1。由于它们是相同版本(均为2.0.1),因此应显示“您拥有最新版本!”在这种情况下,它说“有可用的更新!”无论我输入什么号码。

define('VERSION', '2.0.1'); //in php above 
  

2.0.5 //在远程服务器上的.txt文件中

说同样的事情,因为在远程服务器上显示新的更新(例如2.0.5)。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:1)

您忘记在define('REMOTE_VERSION', ...);行的第二部分引用引号。我在引用中添加了,您还通过将已定义的变量VERSION重新分配给新变量$variable来添加不必要的代码行。这个脚本应该工作;我之前使用过类似的东西。

<?php 
define('VERSION', '2.0.1');
$script = file_get_contents('http://mysite.com/_client/client_name/update/version_check.txt');
define('REMOTE_VERSION', $script);
if(VERSION == REMOTE_VERSION) {
    echo "<div class='success'> 
<p>You have the latest version!</p> 
</div>";
} else {
    echo "<div class='error'> 
<p>There is a update available!</p> 
</div>";
}?>

答案 1 :(得分:0)

这可能是一个拼写错误,但是你的常量定义会出错。

define('REMOTE_VERSION', http://mysite.com/_client/client_name/update/version_check.txt');
                     // ^ Missing quote