Mam ten skrypt, który generuje kanał RSS. Chcę, żeby to była próba osiągnięcia adresu rss przez około 5 sekund, a jeśli nie, to chcę załadować kopię zapasową dokumentu xml, który znajduje się na serwerze. To jest to, co mam i to nie działa:Ustaw limit czasu na pliku simplexml_load_file
<?php
include '../php/connect.php';
$metaData = mysql_query("SELECT * FROM `siteinfo`") or die("couln't find table :(");
$displayData = mysql_fetch_assoc($metaData);
$url = $displayData['status'];
$xml = file_get_contents($url);
stream_set_timeout($xml, 5);
if ($xml == FALSE) {
$xml = simplexml_load_file('backUpXml.xml');
foreach ($xml->channel->item as $item) {
echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">', substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
}
} else {
$xml = simplexml_load_file($url);
foreach ($xml->channel->item as $item) {
echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">', substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
}
}
?>
Otrzymuję błąd przekroczenia limitu czasu i to wszystko. Każdy wgląd byłby świetny!
Poprawione tworzenie kontekstu . Niestety nie mam już żadnych limitów czasu, czy istnieje strona testowa, która po prostu ma długi czas oczekiwania? – Daniel
Masz to, możesz przetestować kod, dzwoniąc do php zawierającego polecenie "sleep (45);". – Daniel
Aby uwzględnić również limit czasu gniazda, istnieje zmienna do ustawienia żądanej wartości: 'ini_set ('default_socket_timeout', 5);' Więcej informacji [tutaj] (http://stackoverflow.com/a/10236480) – jap1968