在PHP中使用foreach循环回显数组元素


Echo-ing array elements in PHP with foreach loop

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

由于某些原因,我只将最后一个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;}
?>

错误在这一行:

$file_headers = @get_headers($fullurl);}

去掉后面的},放在这里:

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

否则,array_push总共只被调用一次,结果是得到trees.jpg

你可以把右花括号单独放在一行上,并纠正缩进,以提高代码的可读性。