我正在使用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