【问题标题】:PHP preg_match_all can't get img src [duplicate]PHP preg_match_all 无法获取 img src [重复]
【发布时间】:2016-11-10 22:32:34
【问题描述】:

我正在用 php 编写一个机器人。我想使用 curl 获取图像源。我可以获取 img 标签,但无法从 img 获取 src 值。我总是得到空字符串。你能看出我的错误是什么吗?

index.php

    $baglan = Baglan("http://www.hurriyetemlak.com/konut-satilik/sakarya-karasu-yali-emlakcidan-apartman-dairesi/detay/23585876");
    preg_match('#<div id="dvSmallPhoto" class="small-photo mt10">                <ul class="thumbs">(.*?)                                    </ul>            </div>#', $baglan, $resimlerGenel);

    preg_match_all('#<li><figure>(.*?)</figure></li>#', $resimlerGenel[1], $resimler);
    $yeni = str_replace('"', '\'', $resimlerGenel[1]);
    preg_match_all("#<li><figure><img src='(.*?)' href='JavaScript:void(0);' onclick='return replaceImg(this)' tabindex='(.*?)' class='pretty' width='114' height='88' alt='(.*?)' /></figure></li>                                    #", $yeni, $resimLinkler);
    print_r($resimLinkler);

Baglan.php

function Baglan($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_USER_AGENT, $_SERVER["HTTP_USER_AGENT"]);
    $cikti = curl_exec($curl);
    curl_close($curl);
    return str_replace(array("\n","\t","\r"), null, $cikti);
}

【问题讨论】:

    标签: php image curl tags preg-match-all


    【解决方案1】:

    您可能最终可以解决此问题,但正则表达式不是解决此问题的正确工具。

    您应该使用 DOM 解析器:

    https://secure.php.net/manual/en/class.domxpath.php

    它会让你的生活更轻松

    这是一个例子:

    https://stackoverflow.com/a/10131137/1880431

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 2016-04-09
      • 2014-07-13
      • 2014-08-22
      相关资源
      最近更新 更多