2017-10-12 10 views
2

私はicecatを使って製品のインポートシステムに取り組んでいます。 画像で解決するのに少し問題があります。 問題はIcecatは以下のように画像をダウンロードするための別の方法を提案することができます:URLの中のファイル名の末尾をとる方法は?

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

答えて

3

ワンありがとう

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

とベース名を取得する:あなたはまた、ベース名である項目の配列1を返しパス情報()を使用することができ

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

:簡単な方法は、のbasename()機能を使用することですそこからあなたは:

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

関数を使用することができます。pathinfo()ファイルシステムパスの情報これは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' 
//) 
1

正規表現の方法を不思議:

$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]; 
1

のstrrposは、文字の最後に出現を与えるだろう、とあなたは、実際の画像のファイル名を取得することができます。

$url = 'http://images.icecat.biz/img/gallery_mediums/myimage.jpg'; 

echo substr($url, (strrpos ($url, '/') + 1)); 
関連する問題