带有Curl的PHP preg_match_all

时间:2012-02-17 22:34:25

标签: php regex curl preg-match-all

我有一个PHP脚本,它向market.android.com/mylibrary提交curl请求并检索页面,然后使用regex解析它。在下面的第一个链接中,您可以看到在运行时它会输出与“底部的每个正则表达式测试”对应的“出错了但出错了”。现在,如果您对第74行进行注释并取消注释75,它将起作用。如果您想查看卷曲返回的内容,只需在底部添加echo($result);

请务必在顶部填写您的Google信用卡并在您的网络服务器中启用curl - > Example file 1

现在在第二个例子中,我只从curl结果中获取相关部分,并手动转义所有撇号。我在底部放置了相同的正则表达式字符串,它完全按预期工作。

Example file 2

是否有人能够看到导致问题的原因?我尝试过使用preg_last_error()但它只返回0。谢谢!

1 个答案:

答案 0 :(得分:0)

由于评论中提供的提示,我得到了这个工作。这是解决方案:

$doc = new DOMDocument();
@$doc->loadHTML($result);
$images = $doc->getElementsByTagName('img');

$apps = array();

foreach($images as $img) {
    $alt = $img->getAttribute('alt');
    if($alt != '') {
        $src = $img->getAttribute('src');
        if(strpos($src, 'data:image/gif;base64') !== false) {
            $src = $img->getAttribute('data-lazysrc');
        }
        $apps[$alt] = $src;
    }
}

return $apps;