0

画像をブラウザにエコーするのに問題があります。私は PHP にまったく慣れていないので、過去 1 時間、解決策を見つけることなく Web を検索してきました。ドキュメントに追加しようとしheader('Content-Type: image/jpeg'); ましたが、何もしません。コードでディレクトリをスキャンし、そのすべての画像ファイルを $thumbArray に入れ、ブラウザにエコーするようにします。私の最終的な目標はフォト ギャラリーです。配列への画像の取得は正常に機能しますが、ページには表示されません。ここに私のコードがあります:

  <?php

//Directory that contains the photos
$dir = 'PhotoDir/';

//Check to make sure the directory path is valid
if(is_dir($dir))
{
    //Scandir returns an array of all the files in the directory
    $files = scandir($dir);
}



//Declare array
$thumbArray = Array();

foreach($files as $file)
{
    if ($file != "." && $file != "..")     //Check that the files are images
        array_push($thumbArray, $file);   //array_push will add the $file to thumbarray at index count - 1
}


 print_r($thumbArray);


include 'gallery.html';

?>

Gallery.html ファイルは次のとおりです。

    <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Gallery</title>
</head>
<body>


    <?php
    header('Content-Type: image/jpeg'); 

    for($i = 0; $i < count($thumbArray); $i++)
     echo '<img src="$dir'.$thumbArray[$i].'" alt="Picture" />';

    ?>

</body>
</html>
4

1 に答える 1

4

現在のケースでheader('Content-Type: image/jpeg');は、コードから削除するだけです。出力は HTML です。すべての画像はIMGタグ内に出力されます。この場合、追加のヘッダー変更は必要ありません。

また、PHP を使用する場合は、このコードを *.html ファイルに含めないでください。デフォルトの http サーバーの設定では *.html 内では実行されません。名前gallery.htmlを に変更してgallery.phpに変更include 'gallery.html';すると、include 'gallery.php';正常に動作します (もちろん、削除した場合header('Content-Type: image/jpeg');も同様です)。

3 つ目の悪い点は次のとおりです。

echo '<img src="$dir'.$thumbArray[$i].'" alt="Picture" />';

$dir変数を一重引用符で囲もうとしています。内部で PHP 変数を使用できるのは二重引用符のみです。

それを変更:

echo '<img src="'.$dir.$thumbArray[$i].'" alt="Picture" />';

変更後、ページのソースコードを調べて、画像のパスが正しいかどうかを確認してください。いいえの場合は、それを修正するために何かをしてください。たとえば、ディレクトリの区切り文字を忘れた場合、正しい文字列は次のようになります。

echo '<img src="'.$dir.'/'.$thumbArray[$i].'" alt="Picture" />';

等々。

于 2013-11-04T04:22:19.810 に答える