我想使用preg_match&正则表达式找到所有视频质量。所以我想搜索128,500,750,1000,1500像素的质量。我需要返回阵列中的所有质量。我该怎么办?
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=350000
128/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=750000
500/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1000000
750/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1250000
1000/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1750000
1500/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
答案 0 :(得分:1)
您可以改用explode
。
$pixel_arr = array();
foreach(explode(PHP_EOL,$str) as $v)
{
if(strpos($v,'/')!==false)
{
$v=explode('/',$v);
$pixel_arr[]=array_shift($v);
}
}
print_r($pixel_arr);
<强> OUTPUT :
强>
Array
(
[0] => 128
[1] => 500
[2] => 750
[3] => 1000
[4] => 1500
)
答案 1 :(得分:0)
如果您愿意,可以使用regexp执行此操作:
preg_match_all( '/([0-9]+)\//', $str, $matches );
print_r( $matches[1] );
但是,真的,爆炸会更快。
答案 2 :(得分:-1)
怎么样:
preg_match_all('/^\d+/m', $str, $m);