1

我想在使用 file_get_contents() 创建文件后运行代码。现在,当我调用代码以使用 simplexml_load_file() 加载 xml 文件时,它什么也不做,因为文件需要时间加载并使用 file_get_contents() 保存在文件夹中。

如果我有任何方法可以在文件夹中创建文件后立即运行代码,那么我认为这项工作将完成。这是我要运行的代码

 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-->

但是这段代码什么也不做,因为当时的文件没有完全加载。

4

1 回答 1

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;
    ...
    ...
于 2012-09-26T07:51:03.817 回答