来自jwplayer的preg_match文件网址

时间:2015-05-01 18:35:20

标签: php html regex web-scraping preg-match

我使用简单的HTML DOM Parser从页面获取html。

现在我想从<script></script>标签中删除文件网址。这就是我得到的:

<script type="text/javascript">
    jwplayer("ContainerFlashPlayer").setup({
        'autostart': 'true',
        'primary': 'html5',
        'flashplayer': '/images/embed/player.5.10.swf',
        'file':'/zxdfgdfr44444/afrah/Basem_elkerbelay/selawat/guivvahpasjp.mp3',
        'duration': '356.64975',
        'image': '/images/flashimg.png',
        'volume': '75',
        'height': '240',
        'width': '330',
        'controlbar': 'bottom',
        'stretching': 'fill',
        'skin': '/images/embed/skin/shiavoice1.2.zip'
    }); 

</script>

现在我想获取文件网址。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

你可以......

f

输出:

  

/zxdfgdfr44444/afrah/Basem_elkerbelay/selawat/guivvahpasjp.mp3

那个正则表达式说了什么?

  

<?php $string = "jwplayer(\"ContainerFlashPlayer\").setup({ 'autostart': 'true', 'primary': 'html5', 'flashplayer': '/images/embed/player.5.10.swf', 'file':'/zxdfgdfr44444/afrah/Basem_elkerbelay/selawat/guivvahpasjp.mp3', 'duration': '356.64975', 'image': '/images/flashimg.png', 'volume': '75', 'height': '240', 'width': '330', 'controlbar': 'bottom', 'stretching': 'fill', 'skin': '/images/embed/skin/shiavoice1.2.zip' });"; preg_match("~^\s*'file'\s*:\s*'(.*?)',?\s*$~m", $string, $file); echo $file[1]; 线的开头

     

^任意数量的空白字符

     

搜索以下实际文字\s*

     

再次使用冒号分隔任意数量的空白字符'file'

     

单引号然后介于其中的所有内容和下一个单引号\s*:\s*

     

可选的逗号,可选的空格,然后是行'(.*?)'

的结尾      

结束分隔符之后的,?\s*$是正则表达式搜索每一行作为自己的行。

http://php.net/manual/en/reference.pcre.pattern.modifiers.php http://php.net/manual/en/function.preg-match.php