2016-10-31 6 views
1

私はPHPで新しくできています。私は、PHPを使用してHTMLからbodyタグ全体を抽出しようとしています。ここでphpはhtmlタグとともにhtml本文のコンテンツを抽出します。

私のサンプルHTML:

<html> 
<body > 
<p> 
    Example html content 
</p> 
</body> 
</html> 

私はcontentfromのHTMLコンテンツ以下のみを抽出したい:

<p> 
    Example html content 
</p> 

使用して、私が解決しようとしたが、それは、HTMLタグのない文字列のみ出力です以下:

$dom = new domDocument; 
$dom->loadHTML("<html><body><p>Example html content</p></body></html>"); 
$body = $dom->getElementsByTagName('body')->item(0); 
var_dump($body->textContent); //output:Example html content 

この問題を解決するのを手伝ってください。

+0

使用 '$、DOM> saveHTML($本体) ' – Mohammad

答えて

0

には、次のようにコードを更新します。

​​

出力は、HTMLタグと一緒にする必要があります:

string(26) "<p>Hello!</p>" 
0

代わりsaveHTML()を使用する必要があります。

echo $body->saveHTML(); 

意志出力HTMLをあなたが期待しているよう。

0

私はPHPのネイティブdomが好きではありません、簡単なHTML DOMを使用しようとすると、それは簡単で高速です。 https://sourceforge.net/projects/simplehtmldom/

include 'simple_html_dom.php'; 
$html = new simple_html_dom(); 
$html = file_get_html("<html><body><p>Example html content</p></body></html>"); 
$data = $html->find('body',0); 

$ dataにはすべてのbody要素が含まれています。

0

使用この

$data = "<html><body><p>Example html content</p></body></html>"; 
preg_match('/<body>(.*?)<\/body>/', $data, $match); 
print_r($match[1]); 
+0

私の神、正規表現の恋人が理解したら、htmlデータのスクラップにregexを使わないでください。 – Kumar

関連する問題