你如何回应多个图像,这些图像与php中文件名的一部分具有相同的名称?

时间:2014-11-13 02:49:13

标签: php image

我试图找出如何回显目录中包含与其文件名相同名称的所有图像。 我有文件正在上传到我的网络服务器。上传时,文件重命名为 108_2.jpg 108_3.jpg ......等。

我想回显包含108文件名的所有图片。这就是我到目前为止所做的:

<img src="../uploads/<?PHP echo $_SESSION['propertyid'].'.jpg'; ?>" alt="photo" width="100" height="100" border="0" />

$_SESSION['propertyid']将是&#34; 108 &#34;文件名的一部分。

5 个答案:

答案 0 :(得分:0)

试试这个:

<?php
$files = glob('108*.jpg', GLOB_BRACE);
print_r($files);

答案 1 :(得分:0)

在使用循环显示前缀之前,您需要找出哪些文件具有该前缀。这样的事情可能会有所帮助:

$files_in_dir = glob('path/to/images/*');
$files_to_display = array();

// Get your session var
$prefix = $_SESSION['propertyid'];

// Get images you're after
foreach ($files_in_dir as $filename) {
    if (substr($filename, 0, strlen($prefix)) === $prefix) {
        $files_to_display[] = $filename;
    }
}

// Output images
$format = '<img src="../uploads/%s" alt="photo" style="width: 100px; height: 100px: border: none;">';
foreach ($files_to_display as $filename) {
    echo sprintf($format, $filename);
}

答案 2 :(得分:0)

使用glob()获取图片。例如:

$id = (isset($_SESSION['id']) && $_SESSION['id']) ? $_SESSION['id'] : '108';
$path = 'upload/' . $id . '*';
foreach (glob($path) as $filename) {
     echo '<img src="'.$filename.'">';
}

答案 3 :(得分:0)

这种方式应该成功。请注意路径,对于客户端和服务器可能不一样......

<?php
$path = "../uploads";
foreach (glob("$path/{$_SESSION['propertyid']}*") as $filename):
?>
    <img src="<?php echo $path ?>/<?php echo $filename ?>" alt="photo" width="100" height="100" border="0" />
<?php endforeach ?>

答案 4 :(得分:0)

可能比这更实际,但应该这样做。

$imgCount = count(glob("../uploads/". $_SESSION['propertyid']."_*.jpg"));
for($i = 1; $i = $imgCount; $i++) {
    $img = '../uploads/' . $_SESSION['propertyid'] . '_' . $i . '.jpg';
    echo '<img src='. $img .' alt="photo" width="100" height="100" border="0" />'
}