Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在url中仅取文件名的结尾?_Php - Fatal编程技术网

Php 如何在url中仅取文件名的结尾?

Php 如何在url中仅取文件名的结尾?,php,Php,我正在与icecat合作开发产品进口系统。 我有一个小问题要解决的形象。 问题在于,Icecat可以提出不同的方式下载图像,如: ... 我的问题是如何删除此用户案例中的这部分元素,使其仅限于myimage.jpg 这就是我目前的职能 public function getProductMediumImage() { $icecat_products_image_medium = HTML::sanitize($_POST['icecat_products_image_medium']);

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

... 我的问题是如何删除此用户案例中的这部分元素,使其仅限于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()返回数组,其中一项是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));