2

ディレクトリから画像を表示し、各画像に対応する説明を取得して、説明が存在するようにするにはどうすればよいですか。

ディレクトリ内//

01.png
01.txt
02.png 
03.png 
03.txt 
etc.

//として表示する

<img src="01.png"><br>This is the description from the text file named 01.txt
<img src="02.png"><br>
<img src="03.png"><br>This is the description from the text file named 03.txt

探してみましたが何も見つからないので、誰かが私を正しい方向に向けてくれたら幸いです。また、これは、非常に単純なギャラリーや画像や名前のリストを作成したい人にとって非常に便利なことです。

前もって感謝します!

4

5 に答える 5

3

.txt説明は対応するファイルから動的にキャプチャする必要があるため、これが探しているものです。

$dir = './';
$files = glob( $dir . '*.png');
foreach( $files as $file) {
    $filename = pathinfo( $file, PATHINFO_FILENAME) . '.txt';
    $description = file_exists( $filename) ? file_get_contents( $filename) : '';
    echo '<img src="' . $file . '"><br>' . $description;
}

それが行うことは、指定されたディレクトリ()から*.pngを使用してファイルの配列を取得することです。次に、画像ごとに、画像のファイル名を取得し(そうなります)、追加して説明ファイルの名前を取得します。次に、説明ファイルが存在するかどうかを使用して、説明ファイルを変数にロードします。次に、目的のHTMLを出力します。glob()$dir01.png01.txt$descriptionfile_get_contents()

于 2012-06-27T17:23:54.373 に答える
2

写真やテキストファイルと同じディレクトリに.phpファイルがあると思います。

関数glob()を使用して、ディレクトリからすべての画像ファイルを配列として読み込み、ファイル拡張子を切り取り(したがって、「01.png」は「01」になります)、ファイル拡張子に文字列の連結を追加できます。

動作するコード例は次のようになります。

<?php
    $path_to_directory = './';
    $pics = glob($path_to_directory . '*.png');
    foreach($pics as $pic)
    {
        $pic = basename($pic, '.png'); // remove file extension
        echo '<img src=\"{$pic}.png\"><br>'; 
        if(file_exists($pic . '.txt'))
        {
            echo file_get_contents("{$pic}.txt");
        }
    }

?>

だから間違いなくこれらの関数を見てください:

ハッピーコーディング。

于 2012-06-27T17:25:35.247 に答える
1

あなたの質問は少し混乱しています。

すべての情報で配列を作成します。

$pics = array('img' => '01.png', 'text' => 'This is the description');

foreach($pics as $pic) {
    echo '<img src="'.$pic['name'].'" alt="">' . $pic['text'];
}

したがって、情報を配列またはデータベースに配置する必要があります。そうしないと、説明を画像にマップできません。

フォルダーを動的に読み取りたい場合は、少し難しいです。

readdirまたはglobを見ると、すべての画像を読み取って名前を取得し、file_get_contents でテキストファイルをロードできますが実際にはパフォーマンスの高い方法ではないと思います。

于 2012-06-27T17:18:24.143 に答える
0

あなたがファイルの内容を望んでいることを彼が見逃したので、更新されたバージョンのZnArKsコード

//path to directory to scan
$directory = "../images/team/harry/";

//get all image files with a .jpg extension.
$images = glob($directory . "*.png");

//print each file name
foreach($images as $image)
{
    $textfile = substr($image, 0, -3) . "txt";

    echo "<img src='{$image}'><br/>";

    if(file_exists($textfile))
    {
       echo file_get_contents($textfile) . "<br/>";
    }
}
于 2012-06-27T17:24:41.013 に答える
0

ここから変更されたコード: http://php.net/manual/en/function.readdir.php

//path to directory to scan
$directory = "../images/team/harry/";

//get all image files with a .jpg extension.
$images = glob($directory . "*.jpg");

//print each file name
foreach($images as $image)
{
    print "<img src=\"$image\"><br>This is the description from the text file named $image";
}

これではテキスト ファイルの内容は出力されませんが、上記のコードをさらに変更して、それを把握できると確信しています。

はい

于 2012-06-27T17:19:23.737 に答える