修剪变量中的文本“th_”并将结果保存到新变量中?

时间:2013-04-02 15:40:14

标签: php

我的问题快速而简单。

我正在创建一个图库,我正在使用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的方法,因为它摆脱了我不一定必须拥有的两行代码。

感谢快速的答案!

6 个答案:

答案 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)

这有一个批量重命名目录文件的实现。

Bulk Rename Files in a Folder - PHP

答案 5 :(得分:0)

您可以使用“explode”将“_”字符上的字符串拆分为数组,然后获取数组的后一个元素。

$myarray = explode("_", $filename);
if(count($myarray)>1){
    $full_filename = $myarray[1];
}