在扩展名之前的 url 末尾附加字符串 [重复]

Posted

技术标签:

【中文标题】在扩展名之前的 url 末尾附加字符串 [重复]【英文标题】:Append string at the end of url before extension [duplicate] 【发布时间】:2017-07-12 01:32:35 【问题描述】:
<a class="fancybox" href="images/<?php echo $prod['item_image_url']; ?>" data-fancybox-group="gallery" title=""><img src="images/<?php echo $prod['item_image_url']; ?>"  /></a>

在此代码中,echo $prod['item_image_url']; 打印存储在我的表中的图像 url 并打印为

href="images/new-thumb-01.jpg"

我正在尝试将其转换为

href="images/new-thumb-01-big.jpg"

不更改数据库条目。这意味着在 url 末尾但在 ".jpg" 之前添加 "-big"

【问题讨论】:

【参考方案1】:
 You have to break filename and file extension and then add whatever file name 
 before extension.

 $fileOrg = $_FILES[0]['name'];
 $filenameOnly = array_pop(array_reverse(explode(".", $fileOrg )));
 $ext = end(explode('.', $fileOrg ));
 $filename = $filenameOnly . '-big' .'.' . $ext;

【讨论】:

【参考方案2】:

如果文件名来自数据库,并且文件系统中可能不存在文件,您可以使用substr_replace()在文件名之间插入特定字符串:

<?php
$string = 'new-thumb-01.jpg';
$replacement = '-big';
echo substr_replace( $string , $replacement , strrpos($string, '.'), 0 );

【讨论】:

【参考方案3】:

你可以简单地使用explode()函数

$url = "images/new-thumb-01.jpg";
$image = explode('.', $url);
$newUrl =  $image[0].'-big.'.$image[1]; 
echo $newUrl;

希望对你有帮助..

【讨论】:

【参考方案4】:

你可以使用pathinfo函数:

$prod['item_image_url'] = "new-thumb-01.jpg";

$fileparts = pathinfo($prod['item_image_url']);

$bigFileName = $fileparts['filename'] . "-big." .$fileparts['extension'];

$bigFileName 持有new-thumb-01-big.jpg

【讨论】:

我喜欢这个解决方案,因为如果 url 中除了扩展名之前的点之外还有点,那么下面的分解解决方案可能会中断。并且由于 pathinfo 将 url 分解为一个数组,因此如果需要,我可以使用 $fileparts['dirname'] 在 url 的目录部分添加回。超级有帮助。谢谢!

以上是关于在扩展名之前的 url 末尾附加字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从文件中读取行而不在末尾附加“\ n”[重复]

我可以将 Enum 扩展为 Enum.GetValues() 吗? [复制]

Git不断复制文件并在文件名末尾附加'2'

重定向到外部网站时,url 被附加到请求的 url 的末尾

使用 PHP 进行 SEO 的蛞蝓 - 将名称附加到 URL 的末尾

PHP如何在页面加载之前将查询字符串附加到URL