1

我的问题既快速又简单。

我正在创建一个画廊,我正在使用 glob 从目录中获取我的全尺寸图像和缩略图。

我的缩略图图像的路径有一个变量:images/photo-strip/thumb/*.jpg

我正在减少使用路径并将其保存images/photo-strip/thumb/*.jpg*.jpgbasename()$filename

然后我重新构建完整尺寸图像的路径,如下所示:$pathToFull = 'images/photo-strip/' . $filename;

我在拇指文件夹中的文件命名如下:th_*.jpg全尺寸图像是*.jpg(完全匹配但没有 th)。

然后,我有一个回显,将 HTML 放入标签中,缩略图路径位于<img>标签中,完整尺寸路径位于<a>标签中。

问题是我的全尺寸图像的路径是错误的,因为图像文件名中的 th_ 。

有没有办法修剪th_from$filename并将其保存为类似的东西,$full_filename以便我可以更正全尺寸图像的文件名?

我可以轻松地重命名缩略图图像以排除 th_ 这将解决我的问题,但我更愿意保留文件名原样。

编辑:

我正在使用 BCMCFC 的方法,因为它摆脱了我不必拥有的两行代码。

感谢您的快速答复!

4

6 回答 6

1

只需使用str_replace函数将“th_”替换为空字符串

于 2013-04-02T15:42:19.683 回答
1

再看不过$full_filename = substr($filename,3);

于 2013-04-02T15:42:37.703 回答
1

听起来您可以将过程简化如下,而不是重建路径:

$img = str_replace('images/photo-strip/thumb/th_', 'images/photo-strip/', $originalImage);

要不就:

$img = str_replace('thumb/th_', '', $originalImage);
于 2013-04-02T15:44:20.327 回答
1

这将是最优雅的方式:-

$filename = 'th_myimage.jpg';
$pathToFull = 'images/photo-strip/' . preg_replace('/^(th_)?/', '', $filename);
// $filename would be 'myimage.jpg'

如果它位于字符串的开头,则此正则表达式模式将替换第一次出现的和。th_

于 2013-04-02T15:52:44.170 回答
0

这具有批量重命名目录中文件的实现。

批量重命名文件夹中的文件 - PHP

于 2013-04-02T15:45:12.537 回答
0

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

$myarray = explode("_", $filename);
if(count($myarray)>1){
    $full_filename = $myarray[1];
}
于 2013-04-02T15:50:46.487 回答