2012-09-26 2 views
0

file_get_contents()를 사용하여 파일을 만든 후 코드를 실행하고 싶습니다. 지금은 파일이 simplexml_load_file()을 사용하여 xml 파일을로드하도록 코드를 호출 할 때 file_get_contents()를 사용하여 폴더에로드하고 저장하는 데 시간이 걸리기 때문에 아무 작업도 수행하지 않습니다.파일을 폴더에 만든 직후 PHP에서 코드를 실행하는 방법은 무엇입니까?

코드가 폴더에서 파일을 만들었을 때 바로 작동한다고 생각하면이 작업이 완료 될 것입니다. 여기 내 코드를 실행하고 싶습니다

if(file_exists("cache/cache_file.xml")){ 
$offerxml = simplexml_load_file("cache/cache_file.xml"); 
$hotel = $offerxml->offer; 

$resultpage = count($hotel)/10; 
?> 
<div class="pagination_btn_cont"> 
<?php for($btn=1;$btn<=$resultpage;$btn++){?> 
<div class="pagination_btn"><?php echo $btn;?></div> 
<?php } ?> 
</div><!--pagination_btn_cont ends--> 
<?php } ?> 
</div><!--search_result_cont ends here--> 

이 코드는 그 때의 파일이 완전로드되지 않기 때문에 아무 것도하지 않습니다.

+0

'cache/cache_file.xml'은 어떻게 저장됩니까? 그것을 저장하는 PHP 외부 프로세스입니까? – Nelson

+0

ys 내가 아약스를 통해 호출하는 다른 PHP 스크립트를 통해 저장하면 XML 데이터가 표시됩니다. 나는 거기에 사용 file_get_content ("cache/cache.xml", 내용) 하지만 그때까지 내로드 파일을 통해 XML을로드하려면 위의 시간이 걸립니다 파일이 그 시간까지 존재하지 않기 때문에 작동하지 않습니다 –

+0

내 대답을 확인 – Nelson

답변

0

함수 file_exists()은 상대 경로를 전달하는 절대 경로를 원하고 DOCUMENT_ROOT을 사용하여 상대 경로를 제공합니다. 다음과 같이 최대 대기 시간과 함께 잠시 후에 파일을 확인할 수 있습니다.

$wait = 8; //maximum wait set to 8 seconds 
while(!file_exists($_SERVER['DOCUMENT_ROOT'] ."cache/cache_file.xml") && $wait){ 
    sleep(1); 
    $wait--; 
} 

if(file_exists($_SERVER['DOCUMENT_ROOT'] . "cache/cache_file.xml")){ 
    $offerxml = simplexml_load_file("cache/cache_file.xml"); 
    $hotel = $offerxml->offer; 
    ... 
    ... 
+0

오류가 표시됩니다. 최대 실행 시간이 60 초를 초과했습니다. –

+0

예. 오류가 있었지만 수정했습니다. 업데이트 된 답변을 확인하십시오. 또한 올바른 파일을 확인하지 않았 음을 염두에 두십시오. 아마도 문제가 그럴 수도 있습니다. – Nelson

+0

아니요 올바른 파일을 찾고 있습니다. 파일이 시간에로드되지 않고 simplexml_load_function()이 파일을로드하기 때문에 페이지 매김이 표시되지 않습니다. 전체 결과를로드 한 후 페이지를 새로 고치면 페이지 매김 시작 표시 –

관련 문제