많은 외부 XML 페이지 (50 개 이상)에서 데이터를 가져 와서 PHP를 사용하여 테이블로 구문 분석하고 cron 작업을 사용하여 장면 뒤에서 수행하여 수집 된 데이터를 표시 할 수있는 스크립트를 작성하려고합니다. 내 사이트에서 사용자를위한 지연 지연 없음.많은 외부 XML 페이지에서 데이터를 미리로드하여 거의 실시간으로 웹 사이트에 정보를 표시하는 방법은 무엇입니까?
이 스크립트의 목적은 현재 온라인 회원과 그들이하고있는 게임을 보여주는 Steam Community 그룹의 회원 명단의 라이브 피드를 수집하는 것입니다. 먼저 그룹의 XML 페이지를 확인하여 업데이트 된 구성원 목록을 얻은 다음 해당 정보를 사용하여 각 구성원의 XML 파일을 검사하여 현재 온라인 상태와 게임 상태를 얻습니다.
나는 성공적이었습니다. 데이터는 로딩 지연없이 약 80 %의 시간으로 올바르게로드되고 표시됩니다. 그러나 나머지 20 %는 사용자가 스크립트가로드되는 페이지의 일부를 넘어서 웹 사이트를로드 할 수 없다는 것을 완전히 경험합니다. 그 시점까지 모든 것을로드하고, 몇 분 동안 정지 한 다음 새로 고침 후에 제대로 작동합니다. 나는 전화 끊기를위한 조건을 복제 할 수 없었고, 단지 너무 자주 무작위로 일어난다.
지연을 유발하는 스크립트를 실행하는 크론 작업이라고 의심 스럽지만 (사실 제한된) 내 영역을 벗어납니다.
내가 찾고있는 것을 더 좋은 방법으로 볼 수 있습니까? 간헐적 인 전화 끊김의 원인은 무엇입니까?
미리 도움을 청하십시오!
<?php
$myFile = "steamfeed.php";
$fh = fopen($myFile, 'w');
$xml = simplexml_load_file('http://steamcommunity.com/groups/sundered/memberslistxml/?xml=1');
$members = $xml->xpath('//steamID64');
foreach($members as $steamID64) {
$xml2 = simplexml_load_file('http://steamcommunity.com/profiles/'.$steamID64.'/?xml=1');
if ($xml2->onlineState != 'offline') {
$steam_game = substr($xml2->inGameInfo->gameName, 0, 25);
$stringData = '<table width="280px" cellspacing="0" cellpadding="0" valign="top" style="vertical-align:text-top;"><tr><td style="background-image:url(\'http://www.thesunderedguard.com/images/statusbg.gif\');" width="288px" height="30px"><table width="100%"><tr><td width="50%" height="30px" style="text-align:left;"><a href="http://steamcommunity.com/profiles/'.$steamID64.'/" target="_blank" style="color:#CDCDCD;">'.$xml2->steamID.'</a></td><td width="50%"><a href="'.$xml2->inGameInfo->gameLink.'" target="_blank">'.$steam_game.'</a></td></tr></table></td></tr></table>';
fwrite($fh, $stringData);
}
}
fclose($fh);
?>
왜 데이터베이스 대신 플랫 파일을 사용하고 있습니까? 증기가이 수준의 긁힘을 허용합니까? –
데이터베이스 작업에 대한 기술 부족으로 인해 tbh. 사이트가 사용하는 거대한 데이터베이스 (phpBB)에서 데이터를 입력하거나 호출하는 방법을 잘 모름. – user2562769