Php 如何仅从url字符串中提取文件名
我有一个URL,其中第一部分的结构总是发生变化,而最后一部分则没有 使用此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()进行此操作吗 其他捕获的文件
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',
)