我正在与icecat合作开发产品进口系统。我有个小问题要解决。问题是,Icecat可以提出不同的下载图像的方法,例如:
媒体/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;
}谢谢
发布于 2017-10-12 13:07:35
一个最简单的方法是使用basename()函数:
$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
echo basename($url); // echoes myimage.jpg您还可以使用pathinfo()来返回数组,其中一个项是basename:
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发布于 2017-10-12 13:08:41
您可以使用php 帕辛弗()函数获取文件系统路径的信息。这也适用于url。
$_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'
//)发布于 2017-10-12 13:17:58
url()和帕辛弗()创造奇迹
$file = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_BASENAME);https://stackoverflow.com/questions/46710306
复制相似问题