当使用文件名作为PHP gallery的标题时,如何从文件夹中排除文件扩展名?

当使用文件名作为PHP gallery的标题时,如何从文件夹中排除文件扩展名?,php,gallery,caption,Php,Gallery,Caption,考虑到我从文件夹(g-images/)创建图库并使用文件名作为标题的工作代码,如何从此类标题中排除*.jpg(即*.png,*.gif)以外的其他文件扩展名? 目前唯一被删除的扩展名是*.jpg。如果它是任何其他扩展,它将作为图像标题的一部分保留 帮助,这里的新手:-) echo''.str_replace(数组('.jpg','.png','.gif'),'',str_replace('name','name',$image))。'; 了解如何使用str\u replace此处:尝试替换此

考虑到我从文件夹(g-images/)创建图库并使用文件名作为标题的工作代码,如何从此类标题中排除*.jpg(即*.png,*.gif)以外的其他文件扩展名?

目前唯一被删除的扩展名是*.jpg。如果它是任何其他扩展,它将作为图像标题的一部分保留

帮助,这里的新手:-)


echo''.str_replace(数组('.jpg','.png','.gif'),'',str_replace('name','name',$image))。

';

了解如何使用
str\u replace
此处:

尝试替换此行:

$imglist[] = $file;
与:

这将在文件名进入数组之前删除文件扩展名,并使用任何扩展名(例如,如果将来您希望支持*.tiff,则不必继续向数组添加扩展名)

更新

通过将数组项设置为数组本身,可以跟踪文件扩展名:

$position = strrpos( $file, '.' );
$imglist[] = array( 
    'filename' => substr( $file, 0, $pos ), 
    'extension' => substr( $file, $pos ), 
);

此外,有关确定文件是否为图像的更好方法,请参阅。

在foreach循环中,您可以执行以下操作

foreach($imglist as $image) {
    echo '<li><a href="'.$img_folder.$image.'" target="zoomed"><img src="timthumb.php?src='.$img_folder.$image.'&a=r&h=260" />';
    // Explode the image name 
    $arr = explode('.', $image);
    if(isset($arr[0]){
        // Get the first element of the array
        $imageName = $arr[0];
        echo '<p>'.str_replace('name', 'Name', $imageName).'</p></a></li>';
    }
}
foreach($imglist作为$image){
回音“
  • ”; } }
    实现这一点的PHP技巧是分解()名称,在
    所在的位置将其分割。然后我们只需将扩展名数组_pop()关闭,并将其内爆回字符串:

    $file_array = explode(".",$image);
    $extension = array_pop($file_array);
    $filename = implode($file_array);
    $filename = ucfirst($filename);
    var_dump($filename);
    
    我假设这个代码

    str_replace('name', 'Name', $image)
    
    你想把字符串大写?您的代码所做的是查找文本字符串“name”,如果找到,则将其替换为文本字符串“name”…以大写您想要的字符串$title的第一个字母:

    $capitalizedTitle = ucfirst($title);
    

    pathinfo('/path/to/file.txt',pathinfo\u FILENAME)
    只返回文件名,不带扩展名


    上面只返回
    文件

    OP使用
    $imglist
    中的条目创建文件路径。在创建路径之前,无法删除扩展。谢谢大家的帮助!我真的很感激,干杯!:-)
    $file_array = explode(".",$image);
    $extension = array_pop($file_array);
    $filename = implode($file_array);
    $filename = ucfirst($filename);
    var_dump($filename);
    
    str_replace('name', 'Name', $image)
    
    $capitalizedTitle = ucfirst($title);