Re: DOM Question. No pun intended.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux