Php 带有HTML字符的Preg匹配问题

Php 带有HTML字符的Preg匹配问题,php,html-parsing,preg-match,Php,Html Parsing,Preg Match,我真的不知道为什么这不起作用,因为我知道它应该匹配所有字符。我觉得这可能与HMTL中的特殊角色有关 这是我的密码 preg_match( '/butt_box(.*?)img/',$return_string, $returned_val); 下面是我试图提取的HTML(试图提取butt_box和其后的第一个img标记之间的内容) <table class="butt_box"> <tbody><tr> <td st

我真的不知道为什么这不起作用,因为我知道它应该匹配所有字符。我觉得这可能与HMTL中的特殊角色有关

这是我的密码

preg_match( '/butt_box(.*?)img/',$return_string, $returned_val);
下面是我试图提取的HTML(试图提取butt_box和其后的第一个img标记之间的内容)

<table class="butt_box">
        <tbody><tr>
          <td style="width:100%;">
            <div class="product_box3_price" style="padding: 15px 0 0 0; text-align:center;"><strong>Price Unavailable</strong><br>
            </div>
          </td>

          <td>
            <div style="padding: 9px 0 6px 0"><a href="http://www.xxxxxx.com.au/index.php?main_page=product_info&amp;products_id=1399"><img src="includes/templates/theme243/buttons/english/button_goto_prod_details.gif" alt="Go To This Product's Detailed Information" title=" Go To This Product's Detailed Information " width="144" height="36"></a><br>
            </div>
          </td>
        </tr>
        </tbody>
</table>

价格不可用


您需要使用
s
PCRE修饰符来允许点匹配换行符

preg_match( '/butt_box(.*?)img/s',$return_string, $returned_val);

你正在用正则表达式解析html。这不太好。为什么不呢?还有什么办法呢?我不想进入其中,但快速的谷歌搜索应该会让你改观。不要用正则表达式解析html。你不能用正则表达式可靠地解析html,你将在这条路上面临悲伤和挫折。一旦html发生变化m您的期望值,您的代码将被破坏。有关如何使用已经编写、测试和调试过的PHP模块正确解析HTML的示例,请参阅。非常感谢链接,我将阅读。