0

ここで、ページのテキストを解析しています:

<?php
$url= 'http://www.paulgraham.com/herd.html';
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTMLFile($url);
libxml_clear_errors();
$xpath = new DOMXPath($doc);
foreach($xpath->query("//script") as $script) {
    $script->parentNode->removeChild($script);
}
$textContent = $doc->textContent; //inherited from DOMNode
$text=escapeshellarg($textContent);
$test = preg_replace("/[^a-zA-Z]+/", " ", html_entity_decode($text));

echo $test; //This gives entire content in one line loosing actual page text format
echo echo nl2br($textContent);  // This does not show in single line but some un usual form. 

?>

<pre>タグも試しましたが、コンテンツ全体が1行で表示されます。元のページのように改行のある段落を取得できるようにするには、ここで何を変更しますか?

テキストコンテンツのみが必要で、画像、ボタンなどはありません。

4

1 に答える 1

1

置き換えたらどうなりますか:

$test = preg_replace("/[^a-zA-Z]+/", " ", html_entity_decode($text));

$test = preg_replace("/<br>/", "\r\n", html_entity_decode($text));
$test = preg_replace("/<.+?>/", " ", $test);
$test = preg_replace("/[^a-zA-Z\r\n]+/", " ", $test);
于 2013-09-30T19:19:44.080 に答える