PHP 空白和文件名的特殊字符错误


<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

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

要么将文件元数据(在您的情况下是标题)存储在数据库中,然后将每个标题关联到某个序列号文件(如 159.jpg),要么考虑将文件名编码为 ASCII 的一小部分,如 urlencode() 生成

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

注意不要达到最大文件名,可能还有文件路径长度。它们也因平台而异。这是使用数据库的另一点,因为它避免了长文件名。

最新更新