当使用文件名作为PHP gallery的标题时,如何从文件夹中排除文件扩展名?
考虑到我从文件夹(g-images/)创建图库并使用文件名作为标题的工作代码,如何从此类标题中排除*.jpg(即*.png,*.gif)以外的其他文件扩展名? 目前唯一被删除的扩展名是*.jpg。如果它是任何其他扩展,它将作为图像标题的一部分保留 帮助,这里的新手:-)当使用文件名作为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此处:尝试替换此
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);