Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Parse HTML code [duplicate]

Tags:

html

php

parsing

Possible Duplicate:
Best methods to parse HTML

How can I parse HTML code held in a PHP variable if it something like:

<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG!

I want to only get the text that's between the headings and I understand that it's not a good idea to use Regular Expressions.

like image 648
Francisc Avatar asked Sep 02 '10 13:09

Francisc


1 Answers

Use PHP Document Object Model:

<?php    $str = '<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG';    $DOM = new DOMDocument;    $DOM->loadHTML($str);     //get all H1    $items = $DOM->getElementsByTagName('h1');     //display all H1 text    for ($i = 0; $i < $items->length; $i++)         echo $items->item($i)->nodeValue . "<br/>"; ?> 

This outputs as:

 T1  T2  T3 

[EDIT]: After OP Clarification:

If you want the content like Lorem ipsum. etc, you can directly use this regex:

<?php    $str = '<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG';    echo preg_replace("#<h1.*?>.*?</h1>#", "", $str); ?> 

this outputs:

Lorem ipsum.The quick red fox...... jumps over the lazy brown FROG

like image 109
shamittomar Avatar answered Sep 20 '22 02:09

shamittomar