/ / Ak súbor neexistuje, poskytnite viac zrkadiel - php, if-statement, download, mirror

Poskytnite viac zrkadiel, ak súbor neexistuje - php, if-statement, download, mirror

Chcem zrkadlový skript, ktorý určí, čialebo nie je určitý súbor prístupný alebo nie. Ak je zrkadlo 1 prístupné, zobrazí sa odkaz na zrkadlo 1. Ak zrkadlo 1 nie je prístupné, zobrazí sa odkaz na zrkadlo 2.

Toto je zatiaľ perfektné, ale chcel by som viaczrkadlá. Napríklad, ak zrkadlo 2 nie je k dispozícii, zobrazí sa zrkadlo 3. Ak zrkadlo 3 nie je k dispozícii, zrkadlo 4 bude byť prezentovaný a tak ďalej. Nie som si úplne istý, ako by som túto prácu mohol urobiť. Dostal niekto nejaké návrhy? Boli by veľmi ocenení. Už som vyskúšal dosť vecí!

$mirror1 = "download1.exe";
$mirror2 = "download2.exe";
$header_response = get_headers($mirror1, 1);
if ( strpos( $header_response[0], "404" ) !== false )
{
echo "
<a href="", $mirror1, "">Download Mirror 1</a>
";
}
else
{
echo "
<a href="", $mirror2, "">Download Mirror 2</a>
";
}

odpovede:

1 pre odpoveď č. 1

Existuje jeden spôsob, ako to urobiť:

$mirrors = array("download1.exe","download2.exe","download3.exe");

foreach($mirrors as $mirror) {
$header_response = get_headers($mirror, 1);
if (strpos( $header_response[0], "404" ) === false) {
echo "<a href="", $mirror, "">Download from ".$mirror."</a>";
break; //removing break will show all available mirrors
}
}

0 pre odpoveď č. 2

Môžete ich všetky dať do poľa. Potom kým () bola odpoveď === nepravda, array_shift ďalšiu z poľa a použiť ju. Akonáhle to nie je nepravdivé, ozvete sa poslednému použitému.