首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在url中取文件名的末尾?

如何在url中取文件名的末尾?
EN

Stack Overflow用户
提问于 2017-10-12 13:01:52
回答 5查看 148关注 0票数 2

我正在与icecat合作开发产品进口系统。我有个小问题要解决。问题是,Icecat可以提出不同的下载图像的方法,例如:

媒体/myImage.jpg http://images.icecat.biz/img/norm/medium/myimage.jpg ..。我的问题是如何在这个用户用例中将元素http://images.icecat.biz/img/norm/medium/的这一部分删除为myimage.jpg。

这就是我目前的职能

代码语言:javascript
复制
public function getProductMediumImage() {
  $icecat_products_image_medium = HTML::sanitize($_POST['icecat_products_image_medium']);
  $product_image_medium = str_replace('http://images.icecat.biz/img/gallery_mediums', '', $icecat_products_image_medium);
  $product_image_medium = str_replace('http://images.icecat.biz/img/norm/medium/', '', $icecat_products_image_medium);


  if (!is_null($icecat_products_image_medium)) {
    $content = @file_get_contents($icecat_products_image_medium);
    file_put_contents($this->template->getDirectoryPathTemplateShopImages() . 'products/' . $product_image_medium, $content);
  }

  $product_image = 'products/' . $product_image_medium;

  return $product_image;
}

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-10-12 13:07:35

一个最简单的方法是使用basename()函数:

代码语言:javascript
复制
$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
echo basename($url); // echoes myimage.jpg

您还可以使用pathinfo()来返回数组,其中一个项是basename:

代码语言:javascript
复制
Array (
    [dirname] => http://images.icecat.biz/img/gallery_mediums 
    [basename] => myimage.jpg 
    [extension] => jpg 
    [filename] => myimage
)

为了从那里得到基本名称,你可以:

代码语言:javascript
复制
$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
$img = pathinfo($url)['basename'];
echo $img; // echoes myimgage.jpg
票数 3
EN

Stack Overflow用户

发布于 2017-10-12 13:08:41

您可以使用php 帕辛弗()函数获取文件系统路径的信息。这也适用于url。

代码语言:javascript
复制
$_POST['icecat_products_image_medium'] = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
$url = HTML::sanitize($_POST['icecat_products_image_medium']);
$info = pathinfo($url);
echo $info['basename']; // 'myimage.jpg'
var_export($info); //array (
//  'dirname' => 'http://images.icecat.biz/img/gallery_mediums',
//  'basename' => 'myimage.jpg',
//  'extension' => 'jpg',
//  'filename' => 'myimage'
//)
票数 2
EN

Stack Overflow用户

发布于 2017-10-12 13:17:58

url()帕辛弗()创造奇迹

代码语言:javascript
复制
$file = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_BASENAME);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46710306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档