0

可能重复:
如何使用 PHP 解析和处理 HTML?

我将以下文本存储在变量中$new

<div class="img">
<span style="float:left; color:#666;">1.&nbsp;&nbsp;</span>
<a href="/Books/info/J-R-R-Tolkien/The-Lord-of-the-Rings/0618640150.html?utm_term=lord+of+the+ring_1_1">
<img src="http://cdn-img-b-tata.infibeam.net/img/6a53fabc/157/0/9780618640157.jpg?wid=90&hei=113" width="90" height="113" border="0">
</a>
</div>
<span class="title">
<h2 class="simple"><a href="/Books/info/J-R-R-Tolkien/The-Lord-of-the-Rings/0618640150.html?utm_term=lord+of+the+ring_1_1"><em>Lord</em> of the <em>Rings</em></a></h2>
&nbsp;By
<a href="/Books/search?author=J R R Tolkien" style="font-size:12px; text-decoration:none;">J R R Tolkien</a>
<span style="color:#666666; font-size:11px;">[Paperback 2005, 50th Edition]</span>
</span>
<div class="price" style="line-height:30px;margin-top:0px;">

我必须提取从1.&nbspto开始的文本<div。我已经尝试了所有可能的解决方案,但没有成功。

4

3 回答 3

1

这应该工作

$ret = preg_replace ("#1\.&nbsp(.+)<div#isU", "$1", $new);

$new 包含你所有的 html。
尽管如此,正则表达式并不是实现您想要的唯一方法,尤其不是最好的方法。

于 2012-08-06T13:47:52.333 回答
1

简单的答案是:你不知道。曾经。HTML 不是正则语言,因此正则表达式CAN NOT PARSE HTML。您需要使用php 作为DOM存在的HTML 解析器

有关为什么正则表达式不适用于 HTML 的更多信息,请阅读此线程。小马。他来了。

于 2012-08-06T13:55:29.600 回答
0

如果这真的是所有代码,这就足够了

strip_tags($html);
于 2012-08-06T13:52:49.587 回答