0
<p class="my-image my-image-zoom">
    <div id="wrap" style="top:0px;z-index:9999;position:relative;"><a href="http://img3.mysite.com/image.jpg" class="cd-zoom" id="prozoom" rel="adjustX: 5, zoomWidth:526, zoomHeight:440, adjustY:-1" style="position: relative; display: block;">
    <img width="400" height="440" id="image" src="http://img3.mysite.com/image.jpg" style="display: block;"></a><div class="mousetrap" style="background-image: url(http://www.mysite.com/); z-index: 999; position: absolute; width: 400px; height: 440px; left: 0px; top: 0px; cursor: move;"></div></div> 
</p>

我试过了

preg_match_all('/product-image-zoom">(.*?)/s',$url,$sav);
print_r($sav);

我喜欢剪辑图像源。最终我从类名中获取所有值开始。我没有发现我的代码有效。任何人都可以帮助我获得图像的来源吗?

4

3 回答 3

1

虽然不建议使用正则表达式来解析 html,但我建议您执行以下操作:

    $dom = new DOMDocument('1.0', 'utf-8');
    @$dom->loadHTML($html);

    $xpath_query = "//img";
    $xpath = new DOMXPath($dom);
    $xpath_query_results = $xpath->query($xpath_query);

    foreach($xpath_query_results as $result)
    {
        $src = $result->getAttribute('src');
        print_r($src);
    }

然后你可以$src根据你的正则表达式测试变量:)

于 2013-07-15T16:07:35.257 回答
1

我建议不要使用正则表达式来解析 HTML。这是一个替代解决方案:

<?php

$html= '<p class="my-image my-image-zoom">
    <div id="wrap" style="top:0px;z-index:9999;position:relative;"><a href="http://img3.mysite.com/image.jpg" class="cd-zoom" id="prozoom" rel="adjustX: 5, zoomWidth:526, zoomHeight:440, adjustY:-1" style="position: relative; display: block;">
    <img width="400" height="440" id="image" src="http://img3.mysite.com/image.jpg" style="display: block;"></a><div class="mousetrap" style="background-image: url(http://www.mysite.com/); z-index: 999; position: absolute; width: 400px; height: 440px; left: 0px; top: 0px; cursor: move;"></div></div> 
    </p>';

$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$src = $xpath->evaluate("string(//img/@src)");

echo $src; //output: http://img3.mysite.com/image.jpg

?>

键盘:http ://codepad.org/C4oKp4LI

希望这可以帮助!

于 2013-07-15T16:12:13.107 回答
0

不要使用正则表达式来解析 HTML。您无法使用正则表达式可靠地解析 HTML,并且您将面临悲伤和挫败感。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。有关如何使用已经编写、测试和调试过的 PHP 模块正确解析 HTML 的示例,请参见http://htmlparsing.com/php 。

于 2013-07-15T16:04:27.383 回答