2008-10-25 38 views
7

Làm cách nào để kiểm tra phiên bản tập lệnh của tôi dựa vào tệp trực tuyến để xem đó có phải là phiên bản mới nhất không?Kiểm tra/Thông báo Phiên bản PHP Script

Để làm rõ, tôi đang nói về một tập lệnh mà tôi đã viết chứ không phải phiên bản PHP. Tôi muốn kết hợp một cách để người dùng cuối cho biết khi nào tôi đã cập nhật tập lệnh.

+0

Bạn có lẽ nên rephrase câu hỏi để làm cho nó rõ ràng nếu bạn muốn phiên bản của kịch bản bạn đang chạy hoặc PHP_VERSION – Ken

Trả lời

15

Để xác định thứ hai (đơn giản hơn) giải pháp phjr đề xuất:

Có một tập tin version.txt trên máy chủ nào của riêng bạn và bao gồm các chức năng sau đây vào dự án triển khai của bạn/tập lệnh:

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 chỉ nên chứa phiên bản mới nhất tê liệt er, ví dụ:

1.0.2 
+0

Tôi không tham gia biểu quyết trong 15 giờ tới nhưng muốn đưa ra câu trả lời này. – eyelidlessness

+0

Một giải pháp khác có vẻ tuyệt vời, tôi cũng sẽ thử giải pháp này. – PHLAK

0

Có nguồn cấp dữ liệu RSS hoặc Atom với thông tin cập nhật. Wordpress làm một cái gì đó tương tự. Sau đó, bạn có thể lưu cục bộ thông tin cập nhật đã được hiển thị cho người dùng, v.v.

Để có giải pháp đơn giản hơn, có tệp trên trang web dự án chỉ chứa số phiên bản. Sau đó so sánh nó với một số phiên bản được lưu trữ trong chương trình của bạn, có thể trong một hằng số.

2

mỗi ý kiến ​​về 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]; 
} 
+0

Tôi thích điều đó ... Tôi sẽ cho rằng một thử. – PHLAK

2
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>"; 
} 
Các vấn đề liên quan