Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP parse HTML tags [duplicate]

Possible Duplicate:
How to parse and process HTML with PHP?

I'm pretty new to PHP. I have the text of a body tag of some page in a string variable. I'd like to know if it contains some tag ... where the tag name tag1 is given, and if so, take only that tag from the string. How can I do that simply in PHP?

Thanks!!

like image 791
Troy McClure Avatar asked Nov 19 '12 16:11

Troy McClure


2 Answers

You would be looking at something like this:

<?php
$content = "";
$doc = new DOMDocument();
$doc->load("example.html");
$items = $doc->getElementsByTagName('tag1');
if(count($items) > 0) //Only if tag1 items are found 
{
    foreach ($items as $tag1)
    {
         // Do something with $tag1->nodeValue and save your modifications
         $content .= $tag1->nodeValue;
    }
}
else
{
     $content = $doc->saveHTML();
}
echo $content;
?>

DomDocument represents an entire HTML or XML document; serves as the root of the document tree. So you will have a valid markup, and by finding elements By Tag Name you won't find comments.

like image 192
RTB Avatar answered Oct 23 '22 17:10

RTB


Another possibility is regex.

$matches = null;
$returnValue = preg_match_all('#<li.*?>(.*?)</li>#', 'abc', $matches);

$matches[0][x] contains the whole matches such as <li class="small">list entry</li>, $matches[1][x] containt the inner HTML only such as list entry.

like image 2
AmShaegar Avatar answered Oct 23 '22 15:10

AmShaegar