0

xmlファイルがURLに存在するかどうかをphpで確認しようとしています(失敗するまで名前をインクリメントします)

このコードが機能しないのはなぜですか?

<?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();
}
}



?>
4

2 に答える 2

1

あなたの主な問題はdie()です。これにより、すべての実行が終了します。

後でXMLを使用する予定がない限り、fopen()代わりに使用してみます。simplexml_load_file()

$handle = @fopen($url, 'r');
if ($handle === false) {
    echo 'fail<br />';
    return; // check till it fails
} else {
    echo 'yay<br />';
    fclose($handle);
}
于 2012-04-12T06:38:38.167 に答える
0

curlを使用して、ファイルが存在するかどうかを確認できます。

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;
}
于 2012-04-12T06:40:25.467 に答える