2

可能重复:
PHP DOMDocument - 获取 BODY 的 html 源

我将以下代码作为变量,并尝试获取正文标签之间的所有内容(同时保留 p 标签等)。这样做的最佳方法是什么?

  • 预赛
  • strpos / substr

    <head>
    <title></title>
    </head>
    <body>
        <p>Services Calls2</p>
    </body>
    
4

3 回答 3

4

两者都不。您可以使用 XML 解析器,例如DomDocument

$dom = new DOMDocument();
$dom->loadHTML($var);

$body = $dom->getElementsByTagName('body')->item(0);

$content = '';

foreach($body->childNodes as $child)
  $content .= $dom->saveXML($child);
于 2013-01-26T13:10:59.983 回答
1

试试这个, $html 有文本:

$s = strpos($html, '<body>') + strlen('<body>');
$f = '</body>';

echo trim(substr($html, $s, strpos($html, $f) - $s));
于 2013-01-26T13:31:27.033 回答
0

我建议您使用 preg_match 因为两者之间的内容<p>Services Calls2</p>可以一直更改,然后 subtr 或 strpos 将需要相当有争议的代码。

例子:

$a = '<h2><p>Services Calls2</p></h2>';
preg_match("/<p>(?:\w|\s|\d)+<\/p>/", $a, $ar);
var_dump($ar);

正则表达式将只允许字母、空格和数字。

于 2013-01-26T13:17:41.033 回答