PHP preg_match(从javascript获取url)

时间:2014-10-29 18:36:15

标签: php regex foreach preg-match

要获取图片网址,我正在使用此preg_match:

preg_match( "/lstImages.push('(.+?)');/", $html, $matches );
foreach ($matches as $mt){
echo $mt;
}
$ html中的

是一个像这样的javascript:

<script type="text/javascript">
                var lstImages = new Array();

                    lstImages.push("http://2.bp.blogspot.com/-A_8FelFBtA0/U8CbI8mDvNI/AAAAAAABHRk/bz4ysT8qeBk/046.png?imgmax=3000");

                    lstImages.push("http://2.bp.blogspot.com/-wkv19o5dCAA/U8CaDZ2VEtI/AAAAAAABHL4/mAGcV8TJbQc/001.png?imgmax=3000");

...

</script>

我希望能够获取网址

http://2.bp.blogspot.com/-A_8FelFBtA0/U8CbI8mDvNI/AAAAAAABHRk/bz4ysT8qeBk/046.png?imgmax=3000

,但是没有结果?

由于

2 个答案:

答案 0 :(得分:0)

'/lstImages\.push\("([^"]*)"\);/'

试试这个。这应该提供所需的图像。

答案 1 :(得分:0)

如果必须使用正则表达式,则应使用preg_match_all()

正在尝试匹配的内容的正则表达式语法不正确。你的模式引用了分隔符,我建议用单引号替换。表达式中的单引号应该是双引号。您还需要转义meta characters才能匹配文字字符。

preg_match_all('/lstImages\.push\("(.+?)"\);/', $html, $matches);
echo implode("\n", $matches[1]);

输出

http://2.bp.blogspot.com/-A_8FelFBtA0/U8CbI8mDvNI/AAAAAAABHRk/bz4ysT8qeBk/046.png?imgmax=3000
http://2.bp.blogspot.com/-wkv19o5dCAA/U8CaDZ2VEtI/AAAAAAABHL4/mAGcV8TJbQc/001.png?imgmax=3000