1
<div id="gallery">

<?php  

$directory = 'people';

$allowed_types=array('jpg','jpeg','gif','png');
$file_parts=array();
$ext='';
$title='';
$i=0;


foreach (glob($directory.'/*.{jpg,jpeg,png,gif}', GLOB_BRACE) as $file){
    if($file=='.' || $file == '..') continue;
    $file_parts = explode('.',$file);
    $ext = strtolower(array_pop($file_parts));
    $title = basename($file);
    $title = htmlspecialchars($title);
    echo '
    <div class="pic '.$nomargin.'" style="background:url(thumbs/'.$file.') no-repeat 50% 50%;">
    <a href="'.$file.'" title="whatever you want : '.$title.'" rel="pan1" target="_blank">'.$title.'</a>
    </div>';
    $i++;
}



?>
<div class="clear"></div>
</div>

这是我的动态图片库代码示例。我会自动显示目录中的所有图像以及来自另一个文件夹的缩略图。这是我的问题:如果我在文件名中使用空白字符或特殊字符,那么它根本不会显示文件。我想使用空格和特殊字符,例如 (ç, ö, ş),因为我想使用图像标题作为图像的描述,而无需编写任何额外的文本。知道怎么做吗?谢谢。

示例:http ://www.kursatkarabulut.com/galeriler/kopya.php

4

1 回答 1

1

我承认我不知道在不同操作系统和文件系统上的文件名中有效和无效的所有字符,但我知道有些可能有问题,并且取决于平台。我个人的建议是避免整个问题。

将文件元数据(在您的情况下为标题)存储在数据库中,然后将每个标题与某个序列号文件159.jpg

例如,将ç.jpgurlencoded 存储为%C3%A7.jpg,然后只存储 urlDecode() 用于显示...

谨防达到最大文件名,以及可能的文件路径长度。它们也因平台而异。这是使用数据库的另一点,因为它避免了长文件名。

于 2012-06-16T15:27:13.987 回答