2017-03-22 12 views
-1

最初の部分の構造が常に変更され、最後の部分は変更されないURLがあります。入力として、このURLを使ってURL文字列からファイル名のみを抽出する方法

https://ig-s-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/17438789_1884899458414605_8605163171642081280_a.jpg 

私はキャプチャしたいと思います:

/17438789_1884899458414605_8605163171642081280_a.jpg 

私はこのためにpreg_match()を使用することはできますか?あなたがここに正規表現を必要といけない

/17438789_1884899458414605_8605163171642081280_a.jpg 
/17438789_111111111111_862222222222222642081280_a.jpg 
/1741111111111789_1555555555605_812222222081280_a.jpg 
+0

正規表現あなたが探しているが –

答えて

0

他のキャプチャのファイル名は次のようになります。あなたは/で爆発すると、配列の最後の項目を取得することができます

$str=" https://ig-s-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/17438789_1884899458414605_8605163171642081280_a.jpg"; 
$array=explode("/",$str); 
echo end($array); 
+0

/\/([0-9_a-z.]+)$/です –

0

多素子配列を作成するために、単一の要素の配列を作成するためにpreg_match()で正規表現パターンを使用するか、またはexplode()を使用するよりも2より良い/より効率的な方法があります。ただ最後の要素を抽出します。

入力:

$str="https://ig-s-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/17438789_1884899458414605_8605163171642081280_a.jpg"; 

方法#1からbasename()と連結/

echo "/",basename($str); 

方法#2からsubstr()の内部strrpos()/を検索:

echo substr($str,strrpos($str,"/")); 

出力(を使用してeithe R法):

/17438789_1884899458414605_8605163171642081280_a.jpg 

array_map()と上記のいずれかの方法を使用して、あなたは迅速にコードのほんの一ラインとの完全なURLのアレイから濾過アレイを生成することができます。

$array=['https://ig-s-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/17438789_1884899458414605_8605163171642081280_a.jpg', 
'https://ig-s-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/17438789_111111111111_862222222222222642081280_a.jpg', 
'https://ig-s-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/1741111111111789_1555555555605_812222222081280_a.jpg']; 

$array=array_map(function($v){return "/".basename($v);},$array); 
var_export($array); 

配列出力:これはまた.thanks.iが爆発について考えたことがない作品

array (
    0 => '/17438789_1884899458414605_8605163171642081280_a.jpg', 
    1 => '/17438789_111111111111_862222222222222642081280_a.jpg', 
    2 => '/1741111111111789_1555555555605_812222222081280_a.jpg', 
) 
関連する問題