удалить комментарии из html исходного кода

Я знаю, как получить исходный код html через cUrl, но я хочу удалить комментарии в html-документе (я имею в виду, что находится между <!-- .. --> ). Кроме того, если я могу взять только BODY html-документа. Спасибо.

Попробуйте PHP DOM * :

 $html = '<html><body><!--a comment--><div>some content</div></body></html>'; // put your cURL result here $dom = new DOMDocument; $dom->loadHtml($html); $xpath = new DOMXPath($dom); foreach ($xpath->query('//comment()') as $comment) { $comment->parentNode->removeChild($comment); } $body = $xpath->query('//body')->item(0); $newHtml = $body instanceof DOMNode ? $dom->saveXml($body) : 'something failed'; var_dump($newHtml); 

Выход :

 string(36) "<body><div>some content</div></body>" 

Если в cUrl нет возможности для этого (и я подозреваю, что нет, но раньше я был не прав), вы можете, по крайней мере, разобрать полученный HTML-код на контент вашего сердца с помощью парсера PHP DOM .

Скорее всего, это будет лучшим выбором в долгосрочной перспективе с точки зрения конфигурации и поддержки.

Я бы перетащил его в sed для регулярного выражения, что-то вроде

 curl http://yoururl.com/test.html | sed -i "s/<!\-\-\s?\w+\s?\-\->//g" | sed "s/.?(<body>.?</body>).?/\1/" 

Регулярные выражения могут быть не точными, но вы получаете идею …