Php 如何在url中仅取文件名的结尾?
我正在与icecat合作开发产品进口系统。 我有一个小问题要解决的形象。 问题在于,Icecat可以提出不同的方式下载图像,如: ... 我的问题是如何删除此用户案例中的这部分元素,使其仅限于myimage.jpg 这就是我目前的职能Php 如何在url中仅取文件名的结尾?,php,Php,我正在与icecat合作开发产品进口系统。 我有一个小问题要解决的形象。 问题在于,Icecat可以提出不同的方式下载图像,如: ... 我的问题是如何删除此用户案例中的这部分元素,使其仅限于myimage.jpg 这就是我目前的职能 public function getProductMediumImage() { $icecat_products_image_medium = HTML::sanitize($_POST['icecat_products_image_medium']);
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()返回数组,其中一项是basename:
Array (
[dirname] => http://images.icecat.biz/img/gallery_mediums
[basename] => myimage.jpg
[extension] => jpg
[filename] => myimage
)
要从中获取basename,您需要:
$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
$img = pathinfo($url)['basename'];
echo $img; // echoes myimgage.jpg
可以使用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'
//)
创造奇迹
$file = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_BASENAME);
正则表达式方式:
$url = 'http://images.icecat.biz/img/gallery_mediums/whatever.jpg';
preg_match_all('#\/\K(?!.*\/).+$#mui', $url, $matches, PREG_SET_ORDER, 0);
echo $matches[0][0];
strrpos将给出最后一次出现的字符,然后您可以得到实际的图像文件名
$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg';
echo substr($url, (strrpos ($url, '/') + 1));