有没有办法在"."之前将"text"附加到字符串?示例:10.jpg



我有不同大小的照片,但我在数据库中有一个文件名。但是,根据情况,我希望使用不同的文件大小。例如:

10.jpg

这是用户名和扩展名,但扩展名和用户ID在.jpg, .jpeg, and .png之间可能会有所不同,所以我不会随时知道确切的文件扩展名
我的所有文件类型如下:

10-thumbnail.jpg // chat size
10-profile.jpg //profile pic preview
10.jpg //full size

当回显照片时,我通常只在从数据库中获取图像后执行图像的路径
echo $profilepic; //10.jpg
但是,不必为照片的每个版本制作单独的列,我只想能够操纵当前图像名称以包含类似10-profile.jpg的内容。有没有办法在.之前加上-profile?由于用户ID和扩展名可能/将不同。我需要爆炸吗
谢谢!

为了允许用户名的灵活性(例如包括.(,我会使用preg_replace来查找文件名中的最后一个.,并在其前面插入大小:

$filename = '10.jpg';
$size = 'profile';
echo preg_replace('/(.[^.]*)$/', "-$size$1", $filename);
$filename = 'john.smith.jpg';
$size = 'profile';
echo preg_replace('/(.[^.]*)$/', "-$size$1", $filename);

输出:

10-profile.jpg
john.smith-profile.jpg

3v4l.org 上的演示

是的,您需要在'.'上分解字符串。

这里有一个例子:

$profilepic = '10.jpg';
$explode = explode('.', $profilepic);
$text = $explode[0] . '-text' . '.' . $explode[1];
var_dump($text);

根据您问题中的详细信息,我理解:

  • 用户ID是一个可变整数
  • 图像类型可以变化

因此,您的全尺寸图片名称列将包含值,如"1.jpg"、"2.png"、…、"748.gif"、

在这种情况下,我会简单地使用str_replace():

<?php
$fullsizepic = '10.jpg';
echo $profilepic = str_replace('.', '-profile.', $fullsizepic); // 10-profile.jpg
?>

向致以最良好的问候

相关内容

  • 没有找到相关文章

最新更新