Php 有没有一种方法可以预先处理“问题”;“文本”;添加到“";之前的字符串&引用;?示例:10.jpg
我有不同大小的照片,但数据库中有一个文件名。但是,根据具体情况,我希望使用不同的文件大小。例如:Php 有没有一种方法可以预先处理“问题”;“文本”;添加到“";之前的字符串&引用;?示例:10.jpg,php,file,prepend,Php,File,Prepend,我有不同大小的照片,但数据库中有一个文件名。但是,根据具体情况,我希望使用不同的文件大小。例如: 10.jpg 这是用户名和扩展名,但是扩展名和用户ID可以/将在.jpg、.jpeg和.png之间变化,因此我不知道每个给定时刻的确切文件扩展名。 我的所有文件类型如下所示: 10-thumbnail.jpg // chat size 10-profile.jpg //profile pic preview 10.jpg //full size 在回显照片时,我通常只是在从数据库中获取图像后进行
10.jpg
这是用户名和扩展名,但是扩展名和用户ID可以/将在.jpg、.jpeg和.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和扩展可以/将不同。我需要爆炸吗?
谢谢 是的,您需要分解“.”上的字符串
以下是一个例子:
$profilepic='10.jpg';
$explode=explode('.',$profilepic);
$text=$explode[0]。'-文本“.”$爆炸[1];
变量转储($text);
为了使用户名具有灵活性(例如,包括
),我将使用查找文件名中的最后一个
,并在其前面插入大小:
$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
从您问题中的细节,我了解到:
- 用户ID是一个可变整数
- 图像类型可能会有所不同
因此,您的全尺寸图片名称列将包含诸如“1.jpg”、“2.png”、“748.gif”等值
在这种情况下,我只需使用str\u replace()
:
最诚挚的问候@CenterTruth别担心,我很高兴能帮上忙。等一下;你在问题中陈述你想“预先结束”。下面两个答案中给出的是“附加”;有什么我错过或不明白的吗?在一个点之前加上一些东西,我不认为是预加的。
<?php
$fullsizepic = '10.jpg';
echo $profilepic = str_replace('.', '-profile.', $fullsizepic); // 10-profile.jpg
?>