0

我正在使用以下 php 代码将图像文件夹加载到 html 页面中。

我遇到的问题是,为了用作图像标题而引入的文件名显示了文件扩展名。

正在提取名称的代码部分是 title='$img'

如何让它删除文件扩展名?

<?php
$string =array();
$filePath='images/schools/';  
$dir = opendir($filePath);
while ($file = readdir($dir)) { 
    if (eregi("\.png",$file) || eregi("\.jpeg",$file) || eregi("\.gif",$file) || eregi("\.jpg",$file) ) { 
        $string[] = $file;
    }
}
while (sizeof($string) != 0) {
    $img = array_pop($string);
    echo "<img src='$filePath$img' title='$img' />";
}

?>

4

4 回答 4

3

您可以使用pathinfo获取不带扩展名的文件名,因此对于 title='' 您可以使用pathinfo($file, PATHINFO_FILENAME);

于 2012-08-26T22:43:21.893 回答
1
$file_without_ext = substr($file, 0, strrpos(".", $file));
于 2012-08-26T22:42:04.233 回答
0

对于“最先进的”OO 代码,我建议如下:

$files = array();
foreach (new FilesystemIterator('images/schools/') as $file) {
    switch (strtolower($file->getExtension())) {
        case 'gif':
        case 'jpg':
        case 'jpeg':
        case 'png':
            $files[] = $file;
            break;
    }
}

foreach ($files as $file) {
    echo '<img src="' . htmlentities($file->getPathname()) . '" ' .
         'title="' . htmlentities($file->getBasename('.' . $file->getExtension())) . '" />';
}

好处:

  • 您不再使用已弃用的ereg()功能。
  • 您可以使用 . 转义可能的特殊 HTML 字符htmlentities()
于 2012-08-26T23:00:56.737 回答
-1

您可以使用 substr 摆脱文件扩展,如下所示:

$fileName =  $request->file->getClientOriginalName();
$file_without_ext = substr($fileName, 0, strrpos($fileName,"."));
于 2020-12-15T03:31:46.650 回答