Php 如果一个文件没有';不存在

Php 如果一个文件没有';不存在,php,if-statement,download,mirror,Php,If Statement,Download,Mirror,我需要一个镜像脚本来确定某个文件是否可访问。如果可以接触到后视镜1,它将显示到后视镜1的链接。如果无法访问后视镜1,它将显示到后视镜2的链接 到目前为止,这是完美的,但我想更多的镜子。例如,如果镜像2不可用,则将显示镜像3。如果镜像3不可用,则镜像4将不可用 被介绍等等。我只是不太确定我怎样才能做到这一点。有人有什么建议吗?他们将不胜感激。我已经试过很多东西了 $mirror1 = "download1.exe"; $mirror2 = "download2.exe"; $header_resp

我需要一个镜像脚本来确定某个文件是否可访问。如果可以接触到后视镜1,它将显示到后视镜1的链接。如果无法访问后视镜1,它将显示到后视镜2的链接

到目前为止,这是完美的,但我想更多的镜子。例如,如果镜像2不可用,则将显示镜像3。如果镜像3不可用,则镜像4将不可用 被介绍等等。我只是不太确定我怎样才能做到这一点。有人有什么建议吗?他们将不胜感激。我已经试过很多东西了

$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>
';
}
$mirror1=“download1.exe”;
$mirror2=“download2.exe”;
$header\u response=get\u headers($mirror1,1);
if(strpos($header_response[0],“404”)!==false)
{
回声'
';
} 
其他的
{
回声'
';
}

有一种方法可以做到这一点:

$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
    }
}
$mirrors=array(“download1.exe”、“download2.exe”、“download3.exe”);
foreach($mirrors as$mirror){
$header\u response=get\u头($mirror,1);
if(strpos($header_response[0],“404”)==false){
回声';
break;//删除break将显示所有可用镜像
}
}

您可以将它们全部放入一个数组中。然后,当()的响应为===false时,array_将下一个从数组中移出并使用它。一旦它不是错误的,您将重复使用的最后一个。

我喜欢这个想法,它工作得很好。但不幸的是,当链接无效时,它只提供无效链接而不是备用链接。谢谢你们两位,非常感谢。@Jessica感谢你们指出这一点,这是一个不幸的复制/粘贴错误:)这怎么可能准确地工作呢?我喜欢使用数组的想法,但它如何工作?这确实很有帮助,非常感谢。