0

我正在尝试使用 foreach 循环测试 PHP 中的 URL 是否存在多个文件。

出于某种原因,我只将最后一个 URL 附加到数组中,但我无法找出原因。

它应该像这样打印出来:

TEST.COM/sky.jpg exists.
TEST.COM/water.jpg doesnt exist
TEST.COM/trees.jpg exists.

但最后一个 url 只附加,即trees.jpg.

这是我的代码,我不太擅长 PHP。可能对功能有点误解foreach

我哪里出错了?

$neg = 'doesnt exist';
$exists = 'exists.';
$file = $_POST['URL'];
$terms = array('sky.jpg','water.jpg','trees.jpg');
reset($terms);
$list = array();
foreach ($terms as &$i){
    $fullurl = $file.$i;
    $file_headers = @get_headers($fullurl);}
    if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
        array_push($list,$fullurl." ".$neg);}
    else {array_push($list,$fullurl." ".$exists);}
foreach ($list as &$x){echo $x;}
?>
4

1 回答 1

0

错误在于这一行:

$file_headers = @get_headers($fullurl);}

删除尾随}并将其放在这里:

else {array_push($list,$fullurl." ".$exists);}}

否则,array_push总共只被调用一次,结果为 getting trees.jpg

您可以将右大括号单独放在一行上并更正缩进以提高代码可读性。

于 2013-04-04T15:12:45.770 回答