Php 如何仅从url字符串中提取文件名

Php 如何仅从url字符串中提取文件名,php,url,substring,filenames,Php,Url,Substring,Filenames,我有一个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\u match()进行此操作吗 其他捕获的文件

我有一个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\u match()
进行此操作吗

其他捕获的文件名如下所示:

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

这里不需要正则表达式。您可以使用
/
分解并获取数组的最后一项

$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);

有两种比使用带有
preg_match()
的正则表达式模式创建单个元素数组更好/更有效的方法,或者使用
explode()
创建多元素数组来提取最后一个元素

输入:

$str="https://ig-s-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/17438789_1884899458414605_8605163171642081280_a.jpg";
方法#1-混凝土
/
,包括:

方法#2-使用以下内容搜索
/

输出(使用任一方法):


注意使用上述任何一种方法,只需一行代码即可从完整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);
阵列输出:

array (
  0 => '/17438789_1884899458414605_8605163171642081280_a.jpg',
  1 => '/17438789_111111111111_862222222222222642081280_a.jpg',
  2 => '/1741111111111789_1555555555605_812222222081280_a.jpg',
)

你要找的正则表达式是/\/([0-9_a-z.]+)$/这也行。谢谢。我从没想过爆炸
/17438789_1884899458414605_8605163171642081280_a.jpg
$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);
array (
  0 => '/17438789_1884899458414605_8605163171642081280_a.jpg',
  1 => '/17438789_111111111111_862222222222222642081280_a.jpg',
  2 => '/1741111111111789_1555555555605_812222222081280_a.jpg',
)