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_pushgets は合計で 1 回だけ呼び出され、gets の結果が返されtrees.jpgます。

行に右中括弧を単独で配置し、インデントを修正してコードを読みやすくすることができます。

于 2013-04-04T15:12:45.770 に答える