我有一个像这样的字符串
folder1/folder2/folder3/13007805372971.jpg
如何在文件名前添加字符串?我想看起来像这样
folder1/folder2/folder3/sometext_13007805372971.jpg
答案 0 :(得分:8)
您可以使用pathinfo函数,该函数用于解析路径。
$s='folder1/folder2/folder3/13007805372971.jpg';
$x='sometext_';
$fos=pathinfo($s);
$s2=$fos['dirname'].DIRECTORY_SEPARATOR.$x.$fos['basename'];
答案 1 :(得分:5)
您可以使用SplFileInfo class
$file = new SplFileInfo('folder1/folder2/folder3/13007805372971.jpg');
printf('%s/sometext_%s', $file->getPath(), $file->getBasename());
也可以使用DIRECTORY_SEPARATOR
常量而不是将斜杠硬编码到调用中。
答案 2 :(得分:3)
您可以使用以下代码实现此目的。
$string = 'folder1/folder2/folder3/13007805372971.jpg';
$last_slash_pos = strrpos($string, '/');
$path = substr($string, 0, $last_slash_pos + 1);
$filename = substr($string, $last_slash_pos + 1);
$filename_prefix = 'sometext_';
$new_filename = $path . $filename_prefix . $filename;
echo $new_filename; // Output: folder1/folder2/folder3/sometext_13007805372971.jpg
答案 3 :(得分:3)
$filePath = 'folder1/folder2/folder3/13007805372971.jpg';
$str = 'sometext_';
$newPath = dirname($filePath) . DIRECTORY_SEPARATOR . $str . basename($filePath);
答案 4 :(得分:0)
preg_replace("/\/([^\/]+)$/", "/sometext_\\1", "folder1/folder2/folder3/13007805372971.jpg");
这是在最后一个斜杠之后的部分,并在它之后添加了一些text_。
答案 5 :(得分:0)
使用pathinfo获取文件名的组件,然后根据需要插入您的添加内容。
$path_parts =pathinfo($string);
$string = $path_parts['dirname'].'/sometext_'.$path_parts['basename'];