dongshan7708 2012-12-18 16:57
浏览 31
已采纳

html标签之间的PHP preg_match图像

I've got an html template like this:

    <div class="cont">
    <div class="...">
    <p>...<p>
    <img alt="" class="popup" src="DESIRED IMAGE LINK" style="..." /></p><p>...</p>
    ....

And i want to extract "DESIRED IMAGE LINK" inside the "" tag, currently i'm using this:

$pattern = '<div class="cont">.*?src=["\']?([^"\']?.*?(png|jpg|jpeg|gif))["\']?/i';
if (preg_match($pattern, $content, $image))
     .....

But it doesn't work, the error is:

    warning: preg_match() [function.preg-match]: Unknown modifier '.' 

How can i fix it? Thanks

  • 写回答

3条回答 默认 最新

  • dougu7546 2012-12-18 17:01
    关注

    The answer is, don't use regular expressions.

    $contents = <<<EOS
    <div class="cont">
        <div class="...">
        <p>...<p>
        <img alt="" class="popup" src="DESIRED IMAGE LINK" style="..." /></p><p>...</p>
    EOS;
    
    $doc = new DOMDocument;
    libxml_use_internal_errors(true);
    $doc->loadHTML($contents);
    libxml_clear_errors();
    
    $xp = new DOMXPath($doc);
    
    // get first image inside div.cont
    foreach($xp->query('//div[@class="cont"]//img[1]') as $node) {
            // output the src attribute
            echo $node->getAttribute('src'), PHP_EOL;
    }
    

    See also: DOMDocument DOMXPath

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥40 图书信息管理系统程序编写
  • ¥15 7-1 jmu-java-m02-使用二维数组存储多元线性方程组
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题