Php 列出目录中的图像(01.png)和说明(01.txt)

Php 列出目录中的图像(01.png)和说明(01.txt),php,image,directory-listing,Php,Image,Directory Listing,如何显示目录中的图像并获得每个图像的相应说明,如果说明存在 目录中// 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

如何显示目录中的图像并获得每个图像的相应说明,如果说明存在

目录中//

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

这是名为01.txt的文本文件中的描述

这是名为03.txt的文本文件中的描述
我一直在寻找,但什么也找不到,所以如果有人能给我指出正确的方向,我将不胜感激。对于想要创建非常简单的图片库或图片和名称列表的人来说,这也是一件非常有用的事情


提前谢谢

你的问题有点让人困惑

用所有信息组成一个数组

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

foreach($pics as $pic) {
    echo '<img src="'.$pic['name'].'" alt="">' . $pic['text'];
}
$pics=array('img'=>'01.png','text'=>'这是说明');
foreach($pics作为$pic){
回显'.$pic['text'];
}
因此,您必须将信息放入数组或数据库中,否则无法将描述映射到图像

当你想动态阅读文件夹时,有点困难


您可以查看或读取所有图像,获取名称并加载文本文件,但我认为这不是一种真正有效的方式。

代码从此处修改:

//要扫描的目录的路径
$directory=“../images/team/harry/”;
//获取扩展名为.jpg的所有图像文件。
$images=glob($directory.*.jpg”);
//打印每个文件名
foreach($images作为$image)
{
打印“
这是名为$image的文本文件中的描述”; }
好的,这样就不会打印文本文件的内容,但是我相信您可以进一步修改上面的代码来解决这个问题


是的,这就是您要查找的内容,因为必须从相应的
.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;
}
$dir='./';
$files=glob($dir.'*.png');
foreach($files作为$file){
$filename=pathinfo($file,pathinfo_filename)。'.txt';
$description=文件存在($filename)?文件获取内容($filename):“”;
回显“
”.$description; }

它所做的是从给定目录(
$dir
)中获取一个
*.png
文件数组。然后,对于每个图像,它获取图像的文件名(因此
01.png
将是
01
),并附加
.txt
以获取描述文件的名称。然后,如果描述文件存在,则使用将描述文件加载到
$description
变量中。然后它输出所需的HTML。

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/>";
    }
}
//要扫描的目录的路径
$directory=“../images/team/harry/”;
//获取扩展名为.jpg的所有图像文件。
$images=glob($directory.*.png”);
//打印每个文件名
foreach($images作为$image)
{
$textfile=substr($image,0,-3)。“txt”;
回声“
”; 如果(文件_存在($textfile)) { 回显文件获取内容($textfile)。“
”; } }
我假设您的.php文件与图片和文本文件位于同一目录中

您可以使用函数
glob()

工作代码示例可能如下所示:

<?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");
        }
    }

?>

所以一定要看看这些函数:


快乐的编码。

试试checkout glob,可能会对你有所帮助。这会很快从谷歌机器上返回很多结果,只是说:)这不会像你想象的那样:
$pic=basename($pic)同样,也不能保证
.txt
文件存在。也不能保证
.txt
文件存在。哇,这就成功了!!!完美的我试图找出一个老的答案,这让我省去了一天的时间。这很有道理,非常感谢你!!!这不会从
.txt
文件动态加载描述。不,我不是雇佣的编码员,OP的行为可能需要一些努力。我想我得到了-1,因为我试图像任何人期望的那样提供帮助(事实上,你的答案可能更有帮助(例如,指向PHP手册中可以用来解决问题的(所有)函数)。但我肯定站在你这边,你的答案确实比-1声誉更有价值。因此,我说:“抗议+1;”