PHP 在一个字符串中的多个位置添加多个字符串

PHP add multiple strings within a string at multiple positions

虽然这很完美,但正在寻找一种方法使它变得更干净一点/更干净,并在此过程中学习!!! 我将 /thumbs 添加到目录和文件字符串,并将 _thumb 添加到同一字符串的文件名的末尾。

从这个... Gallery/Test/Image/image.jpg

为了这个...Gallery/Test/Image/thumbs/image_thumb.jpg

但路径的长度可能会根据目录结构而改变,但 /thumbs 将始终是最后一个目录,而 _thumb 将始终位于“.”之前。

    $thumb_dir = substr($file, 0, strrpos($file, '/')) . '/thumbs' . substr($file, strrpos($file, '/'));

    $thumbnail = substr($thumb_dir, 0, strrpos($thumb_dir, '.')) . '_thumb' . substr($thumb_dir, strrpos($thumb_dir, '.'));

谢谢

如果您的 PHP 版本 > 5.2.0+

pathinfo 可能会对您有所帮助

$path_parts = pathinfo('Gallery/Test/Image/image.jpg');
echo $path_parts['dirname'].'/thumbs/'.$path_parts['filename'].'_thumb.'.$path_parts['extension'];

代码小解释

$path_parts['dirname'] 将获取给定路径的完整目录路径,在本例中为 Gallery/Test/Image。然后我们在字符串中添加了一个名为 '/thumbs/' 的目录。接下来我们应该使用 $path_parts['filename'] 获取文件的名称,这将获取 image 而不是 image.jpg 并且进一步我们向它添加 '_thumb.' 。后来我们用扩展名作为后缀。