正则表达式模式在PHP中的file_get_contents中查找此特定字符串

时间:2015-06-16 14:07:02

标签: php regex string curl file-get-contents

我希望通过在PHP中使用file_get_contents()函数将这个值'B00DS4KJR4'包含在来自url的标记中。但是,我没有编写正确的正则表达式来从这个html源代码页面中找到值:

<span class="a-text-bold">ASIN:
                    </span>
                    <span>B00DS4KJR4</span>

你能帮我写一下正确的正则表达式来找到页面上的特定值吗?

2 个答案:

答案 0 :(得分:1)

您可以使用Regex101上提供的正则表达式,如下所示。这会查找包含任何属性的<span>,其中包含innerHTML中的字符串ASIN:,后跟另一个<span>,并捕获第二个<span>的内容。

$html ='<span class="a-text-bold">ASIN:
                </span>
                <span>B00DS4KJR4</span>';

if (preg_match('/<span\s[^><]*>\s*ASIN:\s*<\/span>\s*<span>\s*([^><]*)\s*<\/span>/i', $html, $m)) {
    $asin = $m[1];
    print $asin;
}

答案 1 :(得分:0)

preg_match_all('/<span>(.*)<\/span>/',$the_html,$the_result_array);

第一个span与正则表达式不匹配,因为它中包含类,其他类似<span>anything</span>的内容将被找到。