1

私はhtmlコードを持っています:

<a href="#">foo</a>bar is dummy string<p>hello</p>

出力をしたい

<a href="#">foo</a><p>hello</p>

上記の結果を得るためにPHPコードを探しています。出力するHTML埋め込み文字列のみをフィルタリングします。strip_tags()関数がhtmlタグを削除し、文字列のみを出力することを知っています。

4

3 に答える 3

2

これを試して

$html = <<<_HTML
<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body>
<a href="#">foo</a>bar is dummy string<p>hello</p>
</body>
</html>
_HTML;

$doc = new DOMDocument();
$doc->loadHTML($html);

$xpath = new DOMXPath($doc);
$textNodes = $xpath->query('/html/body/a/following-sibling::text()[1]');
if ($textNodes->length) {
    $node = $textNodes->item(0);
    $node->parentNode->removeChild($node);
}
echo '<pre>', htmlspecialchars($doc->saveHTML()), '</pre>';

結果は

<!DOCTYPE html>
<html><head><title>Test</title></head><body>
<a href="#">foo</a><p>hello</p>
</body></html>

ここでのデモ-http://codepad.viper-7.com/akDqkj

于 2013-03-27T05:02:21.053 に答える
0

$htmlであなたのhtmlコードを取りましょう

$string = strip_tags($html); 
$final = str_replace($string , "", $html); 

それはあなたを助けるかもしれません。誰かが同じように答えましたが、残念ながら彼は削除しました。

ありがとう

于 2013-03-27T05:02:34.387 に答える
-1

regexそのような交換を実行するために使用します。

于 2013-03-27T04:45:26.490 に答える