我正在使用icecat开发产品导入系统。
我有一个小问题要解决图像。
问题是Icecat可以建议采用其他方式下载图像,例如:

http://images.icecat.biz/img/gallery_mediums/myimage.jpg
http://images.icecat.biz/img/norm/medium/myimage.jpg
...
我的问题是在这种情况下如何将元素http://images.icecat.biz/img/norm/medium/的这一部分删除为myimage.jpg

有我目前的功能

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;
}


谢谢

最佳答案

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

$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
echo basename($url); // echoes myimage.jpg


您还可以使用pathinfo()返回数组,其中一项是基本名称:

Array (
    [dirname] => http://images.icecat.biz/img/gallery_mediums
    [basename] => myimage.jpg
    [extension] => jpg
    [filename] => myimage
)


要从那里获取基本名称,您需要执行以下操作:

$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
$img = pathinfo($url)['basename'];
echo $img; // echoes myimgage.jpg

07-26 03:07