2016-07-20 3 views
0

У меня есть следующий код, чтобы прочитать файл XML, который работает хорошо, когда URL доступен:PHP file_get_contents из различных URL, если первый не доступен

$url = 'http://www1.blahblah.com'."param1"."param2"; 

$xml = file_get_contents($url); 

$obj = SimpleXML_Load_String($xml); 

Как я могу изменить код выше, чтобы цикл через количество разных URL-адресов, если первая по какой-либо причине недоступна? У меня есть список из 4 URL-адресов, содержащих один и тот же файл, но я не уверен, как это сделать.

+0

Для быстрого и грязного раствора вам понадобится время цикла и массив возможных адресов –

ответ

1

Замените код, например, это

//instead of simple variable use an array with links 
$urls = [ 'http://www1.blahblah.com'."param1"."param2", 
      'http://www1.anotherblahblah.com'."param1"."param2", 
      'http://www1.andanotherblahblah.com'."param1"."param2", 
      'http://www1.andthelastblahblah.com'."param1"."param2"]; 

//for all your links try to get a content 
foreach ($urls as $url) { 
    $xml = file_get_contents($url); 

    //do your things if content was read without failure and break the loop 
    if ($xml !== false) { 
     $obj = SimpleXML_Load_String($xml); 
     break; 
    } 
} 
+0

Это работало отлично, спасибо! –