Crude outside-the-box work-around...
You are only looking for <div and </div and what's between them, right?
Playing with strpos and a simple stack for nested DIVs should let you
hack this in a crude parser:
<?php
//Untested code, off the top of my head:
$divs = array();
$stack = array();
$offset = 0;
$len = strlen($html);
while($offset < $len){
$divpos = strpos($html, '<div', $offset);
$endpos = strpos($html, '</div', $offset);
if ($divpos === false && $endpos === false) break;
if ($divpos !== false && $divpos < $endpos){
array_push($stack, array($offset, $divpos));
$offset = $divpos + 1;
}
else{
$start = array_pop($stack);
$divs = array($start, array($offset, $endpos));
$offset = $endpos + 1;
}
}
var_dump($divs);
?>
This should give you offsets to the beginning/end of each DIV tag.
I'm sure I've got a one-off error or I'm not tracking quite the right
numbers, or that I'm tracking extra numbers you don't need, but the
idea is sound.
--
Like Music?
http://l-i-e.com/artists.htm
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php