可能的重复项:
PHP DOMDocument - 获取 HTML 源代码 BODY
我将以下代码作为变量,并尝试抓取正文标签之间的所有内容(同时保留 p 标签等)。最好的方法是什么?
- 预选赛
-
strpos/substr
<head> <title></title> </head> <body> <p>Services Calls2</p> </body>
都不是。您可以使用XML解析器,如DomDocument
:
$dom = new DOMDocument();
$dom->loadHTML($var);
$body = $dom->getElementsByTagName('body')->item(0);
$content = '';
foreach($body->childNodes as $child)
$content .= $dom->saveXML($child);
试试这个,$html有这样的文字:
$s = strpos($html, '<body>') + strlen('<body>');
$f = '</body>';
echo trim(substr($html, $s, strpos($html, $f) - $s));
我建议您使用preg_match,因为<p>Services Calls2</p>
之间的内容会一直变化,然后减法或strpos将需要相当有争议的代码。
例:
$a = '<h2><p>Services Calls2</p></h2>';
preg_match("/<p>(?:'w|'s|'d)+<'/p>/", $a, $ar);
var_dump($ar);
正则表达式将只允许字母、空格和数字。