如何获取<source src =“...”的值使用=“”preg_match =“”all?=“”

时间:2015-12-24 18:02:11

标签: php regex preg-match-all

=“”

我试图使用preg_match_all方法获取src =的值,但保持gettinbg这个错误,我的回声是空的!任何人都可以帮我解决这个问题吗?在此先感谢。

错误:

array(1) { [0]=> string(0) "" }

指着一行:

echo "url:".$match[1][0];

php代码:

$str="........<source  src='http://somewebsite.com/hls/playlist.m3u8?token=23452345463456243dsfasdasdfasdfdsfsdfa=='  type='video/mp4'  ></source>.......";
if(preg_match_all('/\<source  src=(.*?)\'/',$str,$match)) {     
        var_dump($match[1]);            
}
echo "url:".$match[1][0];

1 个答案:

答案 0 :(得分:2)

你有两个空格,而不是一个空格,你也应该将'放在src s =之后,这样你就不会有这个空格。

$str="........<source  src='http://somewebsite.com/hls/playlist.m3u8?token=23452345463456243dsfasdasdfasdfdsfsdfa=='  type='video/mp4'  ></source>.......";
if(preg_match_all('/\<source\h+src=\'(.*?)\'/',$str,$match)) {      
        var_dump($match[1]);   
}
echo "url:".$match[1][0];;

输出:

array(1) {
  [0]=>
  string(87) "http://somewebsite.com/hls/playlist.m3u8?token=23452345463456243dsfasdasdfasdfdsfsdfa=="
}
url:http://somewebsite.com/hls/playlist.m3u8?token=23452345463456243dsfasdasdfasdfdsfsdfa==

你可能最好还是使用解析器。例如,如果其他属性在src之前,则无效。