要获取图片网址,我正在使用此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
,但是没有结果?
由于
答案 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