Index: trunk/html_parse.php
===================================================================
diff -u -N
--- trunk/html_parse.php (revision 13)
+++ trunk/html_parse.php (revision 0)
@@ -1,75 +0,0 @@
-# string $tagFn : function to call for each tag. This function
-# is called for *every* tag, opening and closing.
-# It would be easy to change this to call a
-# different function for open and close tags.
-# The tagFn has these arguments:
-# function tagFn($tag, $attribs)
-# string $tag : the tag
-# string $attribs : all the attributes, as one long string
-# wouldn't be hard to change this to an assoc array
-# string $dataFn : function to call for data (non-tag). This function
-# is called for all the data in between tags, including
-# comments. The dataFn has these arguments:
-# function dataFn($data)
-# string $data : the text
-# string $data : the html to parse
-
-function html_parse($tagFn, $dataFn, $data)
-{
- $comment = false;
-
- # Split on '<', so the beginning of each array entry
- # will be a tag.
- $TagLine = explode('<', $data);
-
- # Loop through each entry -- each entry is a tag
- # followed by everything up to the next tag.
- foreach ($TagLine as $l) {
- # If we're not in a comment block, then check if
- # one starts here.
- if (!$comment) {
- if (substr(ltrim($l), 0, 3) == "!--") {
- # this is the beginning of a comment, not a tag
- $comment = true;
- $commentline = "";
- }
- }
-
- # If we're in a comment block, add this entry to
- # the comment block, and check if it ends here.
- if ($comment) {
- $commentline .= "<".$l;
- if (strstr($l, "-->")) {
- $line = $commentline;
- $tag = "";
- $comment = false;
- }
- else {
- $line = "";
- $tag = "";
- }
- }
- # Otherwise, split on '>' to separate the tag from
- # the data.
- else {
- list($tag, $line) = explode('>', $l, 2);
- }
-
- # If there's a tag, call the tag function
- if (strlen($tag)) {
- $tag = trim($tag);
- list($tag, $attribline) = explode(' ', $tag, 2);
-
- # I could split $attribline into an
- # associative array, but I don't need
- # that functionality now.
- $tagFn($tag, $attribline);
- }
-
- # If there's data, call the data function
- if (strlen($line)) {
- $dataFn($line);
- }
- }
-}
-