2012-04-12 71 views
0

我试图通过PHP来检查是否存在对URL的XML文件(增量名字,直到它失败)检查是否存在XML(不工作)

为什么不工作的代码?

<?php 

for ($i = 1; $i <= 10; $i++) { 
$url = "http://thetvdb.com/api/E676DF9578EF38D7/series/78901/default/".$i."/1/en.xml"; 
echo $url."<br />"; 
$xml = simplexml_load_file($url); 

if ($xml) { 
echo "yay"."<br />"; 
} else { 
echo "fail"."<br />"; 
die(); 
} 
} 



?> 
+0

请定义*“not working”* – Phil 2012-04-12 06:42:51

+0

'die()'打破循环并退出您的代码。去掉它。 – Mob 2012-04-12 06:43:10

回答

1

您的主要问题是die()。这将退出所有执行。

我也想尝试使用fopen()代替simplexml_load_file()除非你打算使用XML以后,如

$handle = @fopen($url, 'r'); 
if ($handle === false) { 
    echo 'fail<br />'; 
    return; // check till it fails 
} else { 
    echo 'yay<br />'; 
    fclose($handle); 
} 
0

你可以只使用卷曲找出一个文件是否存在:

function does_remote_file_exist($url){ 
    $ch = curl_init($url);  
    curl_setopt($ch, CURLOPT_NOBODY, true); 
    curl_exec($ch); 
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

    if ($code == 200) $status = true; 
    else $status = false; 

    curl_close($ch); 
    return $status; 
}