将字符串插入路径

时间:2011-03-22 08:21:18

标签: php string

我有一个像这样的字符串

folder1/folder2/folder3/13007805372971.jpg

如何在文件名前添加字符串?我想看起来像这样

folder1/folder2/folder3/sometext_13007805372971.jpg

6 个答案:

答案 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常量而不是将斜杠硬编码到调用中。

Live Demo

答案 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


View Live Version

答案 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'];