2009-10-31 4 views
0

작은 스크립트가있어서 admin footer에서 스크립트 버전을 감지하고 싶습니다. admin footer.php에서 나는이 코드를 넣었습니다.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 만 있으며 버전을 비교할 때 적합합니다.

여기서 문제는 클라이언트 사이트가 느려질 것입니다. 이 문제를 해결하는 방법? 파일이 단지 버전 번호 인 경우

답변

5

이유입니다. co.kr에서 다운로드하고 version.txt 사본을 다운로드하십시오. 이런 일이 일어나고있는 동안, PHP는 기다리고 있습니다.

왜 전체 페이지가 바닥 글에 있어도 느려 집니까? 왜냐하면 아파치는 PHP 페이지의 결과물을 조금 빗나간 후에 브라우저에 출력하기 때문이다. 출력 버퍼를 비우더라도 브라우저가 수행하는 경우가 있습니다. 제어 할 수없는 것입니다.

일부 PHP 기반 도구를 릴리스하고 바닥 글에 자동 버전 확인이 필요하신 것 같습니다. 맞습니까? 버전 매번 페이지가로드 체크 할 필요가

  1. 없습니다 :

    그렇다면, 그것은 당신이 그것을하고있는 방법을하고있는 몇 가지 문제가있다. 마지막으로 확인한 날짜를 저장하고 ___ 일 후에 만 ​​다시 확인하십시오. (잘하면 이미 이것을하고 단순함을 위해 예제에서 잘라낸 것)

  2. 다른 서버에서 이와같이 파일을 읽는 것은 좋지 않습니다. 지금 경험하고 계시므로 v.domain.com이 바쁠 경우 속도가 느려질 수 있습니다. 다운되면, PHP는 타임 아웃을 기다리고 있기 때문에 더 오래 걸릴 것입니다.

더 좋은 방법은 자바 스크립트를 사용하는 것입니다. 페이지가로드 된 후 AJAX를 사용하는 자바 스크립트 함수를 사용하게됩니다. Javascript에 익숙하지 않은 경우 약간의 학습 곡선이있을 수 있지만 이는 사용자의 상황을 처리하는 이상적인 방법입니다.

+1

DOOManiac이 말한 것처럼 가끔씩 ('x'일마다) 파일을 다운로드해야합니다. 이렇게하면 자바 스크립트에 의존하는 것을 피할 수 있습니다. 많은 클라이언트가 자바 스크립트 (휴대 전화, 텍스트 브라우저 (예 : 아직 사용중), 자동화 된 도구)를 사용할 수 없기 때문에 생각할 수 있습니다. 예약 된 작업 만 다운로드하면 사용자에게 영향을 미치지 않습니다. –

+0

허용. 나는 단지 한 번 호출하여 현재 버전의 db에 저장 한 다음 x 일마다 비교합니다. :) – wow

2

나는 노력 제안 : 서버가 PHP 코드가 v.domain 치고있다 실행하기 때문에 속도가 느린

file_get_contents()

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

저는 file_get_contents도 선호합니다. – ChronoFish

+0

그러나 그것이 왜 느려지지는 않습니다. –

+0

예. 매우 간단합니다. – wow