Skip to content Skip to sidebar Skip to footer

Php Parse Html Tags

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 contai

Solution 1:

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 ($itemsas$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.

Solution 2:

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.

Solution 3:

Fast way:

Look for the index position of tag1 then look for the index position of /tag1. Then cut the string between those two indexes. Look up strpos and substr on php.net Also this might not work if your string is too long.

$pos1 = strpos($bigString, '<tag1>');
$pos2 = strpos($bigString, '</tag1>');
$resultingString = substr($bigString, -$pos1, $pos2);

You might have to add and/or substract some units from $pos1 and $pos2 to get the $resultingString right. (if you don't have comments with tag1 inside of them sigh)

The right way:

Look up html parsers

Post a Comment for "Php Parse Html Tags"