我的问题快速而简单。
我正在创建一个图库,我正在使用glob从目录中获取我的全尺寸图像和缩略图。
我的缩略图图片路径有一个变量:images/photo-strip/thumb/*.jpg
我正在使用images/photo-strip/thumb/*.jpg
将路径*.jpg
缩减为basename()
,并将其保存到$filename
然后我重新构建完整尺寸图像的路径,如下所示:$pathToFull = 'images/photo-strip/' . $filename;
拇指文件夹中的文件名称如下:th_*.jpg
,完整尺寸的图像为*.jpg
(完全匹配但没有th)。
然后我有一个回显,将带有缩略图路径的HTML放在<img>
标记中,并将完整版路径放到<a>
标记。
问题是我的全尺寸图片的路径是错误的,因为图片的文件名中有th_。
有没有办法从th_
修剪$filename
并将其保存为类似$full_filename
的内容,以便我可以更正全尺寸图片的文件名?
我可以轻松地重命名缩略图以排除th_这将解决我的问题,但我更愿意保留文件名。
修改
我正在使用BCMCFC的方法,因为它摆脱了我不一定必须拥有的两行代码。
感谢快速的答案!
答案 0 :(得分:1)
只需使用str_replace函数将空字符串
替换为“th_”答案 1 :(得分:1)
只看$full_filename = substr($filename,3);
答案 2 :(得分:1)
听起来您可以按照以下方式简化流程,而不是重建路径:
$img = str_replace('images/photo-strip/thumb/th_', 'images/photo-strip/', $originalImage);
或者只是:
$img = str_replace('thumb/th_', '', $originalImage);
答案 3 :(得分:1)
这将是最优雅的方式: -
$filename = 'th_myimage.jpg';
$pathToFull = 'images/photo-strip/' . preg_replace('/^(th_)?/', '', $filename);
// $filename would be 'myimage.jpg'
此正则表达式模式将替换仅第一次出现th_
,如果它位于字符串的开头。
答案 4 :(得分:0)
这有一个批量重命名目录文件的实现。
答案 5 :(得分:0)
您可以使用“explode”将“_”字符上的字符串拆分为数组,然后获取数组的后一个元素。
$myarray = explode("_", $filename);
if(count($myarray)>1){
$full_filename = $myarray[1];
}