是否可以在“。”之前在字符串之前添加“文本”?例如:10.jpg

问题描述 投票:-2回答:3

我有不同大小的照片,但是数据库中有1个文件名。但是,根据情况,我想使用其他文件大小。例如:

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但是,不必为每个版本的照片单独创建一列,id就像能够操纵当前图像名称以包含10-profile.jpg之类。有没有一种方法可以在-profile之前添加.?由于用户ID和扩展名可能/将会不同。我需要爆炸吗?谢谢!

php file prepend
3个回答
2
投票

[为了允许用户名具有灵活性(例如,包含.),我将使用preg_replace查找文件名中的最后一个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


1
投票

是,您需要将'。'上的字符串爆炸。

这里是一个例子:

Demo on 3v4l.org

0
投票

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

  • 用户ID是可变整数,
  • 图像类型可能有所不同。

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

在这种情况下,我将只使用$profilepic = '10.jpg'; $explode = explode('.', $profilepic); $text = $explode[0] . '-text' . '.' . $explode[1]; var_dump($text);

str_replace()

最诚挚的问候

© www.soinside.com 2019 - 2024. All rights reserved.