1

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

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

<?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)。谁能告诉我我做错了什么?

4

2 回答 2

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>";
}?>
于 2013-08-26T04:21:05.390 回答
0

这可能是一个错字,但在您的常量定义中存在错误。

define('REMOTE_VERSION', http://mysite.com/_client/client_name/update/version_check.txt');
                     // ^ Missing quote
于 2013-08-26T03:45:27.540 回答