PHLAK
PHLAK

Reputation: 22527

PHP Script Version Checking/Notification

How can I check the version of my script against an online file to see if it's the latest version?

For clarification, I'm talking about a script I wrote, not the version of PHP. I'd like to incorporate a way for the end user to tell when I've updated the script.

Upvotes: 7

Views: 5332

Answers (5)

Mukesh Yadav
Mukesh Yadav

Reputation: 1

Change

if($version == $script) 

to

if($version >= $script)` 

Upvotes: -1

Nick Winstanley
Nick Winstanley

Reputation: 21

define('REMOTE_VERSION', 'http://your.public.server/version.txt');
define('VERSION', '1.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>";
}

Upvotes: 2

Stefan Gehrig
Stefan Gehrig

Reputation: 83672

To specify the second (more simple) solution phjr proposed:

Have a file version.txt on your own public server and include the following function into your deployed project/script:

define('REMOTE_VERSION', 'http://your.public.server/version.txt');

// this is the version of the deployed script
define('VERSION', '1.0.1');

function isUpToDate()
{
    $remoteVersion=trim(file_get_contents(REMOTE_VERSION));
    return version_compare(VERSION, $remoteVersion, 'ge');
}

version.txt should just contain the most recent version number, e.g.:

1.0.2

Upvotes: 16

eyelidlessness
eyelidlessness

Reputation: 63529

Per comments on this answer

// Substitue path to script with the version information in place of __FILE__ if necessary
$script = file_get_contents(__FILE__);
$version = SOME_SENSIBLE_DEFAULT_IN_CASE_OF_FAILURE;
if(preg_match('/<!-- Script version (\d*(\.\d+)*) -->/', $script, $version_match)) {
    $version = $version_match[1];
}

Upvotes: 2

Paweł Hajdan
Paweł Hajdan

Reputation: 18552

Have an RSS or Atom feed with update info. Wordpress does something similar. Then you can locally save information which updates have been shown to the user etc.

For even simpler solution, have a file on project website that would contain just the version number. Then compare it with a version number stored in your program, probably within a constant.

Upvotes: 0

Related Questions