我正在尝试使用foreach循环测试PHP中的URL是否存在多个文件。
出于某种原因,我只将最后一个URL附加到数组中,但我找不到原因。
它应该打印出来:
TEST.COM/sky.jpg exists.
TEST.COM/water.jpg doesnt exist
TEST.COM/trees.jpg exists.
但最后一个网址只会附加,即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;}
?>
答案 0 :(得分:0)
错误在于这一行:
$file_headers = @get_headers($fullurl);}
删除尾随}
并将其放在此处:
else {array_push($list,$fullurl." ".$exists);}}
否则,array_push
只会被调用一次,结果是获得trees.jpg
。
您可以将自己的大括号放在一行上并更正缩进以获得更多代码可读性。