class members
| From: | Robert Spanton | Date: | Sun, 30 Jun 2002 19:40:41 +0000 |
| Subject: | class members | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969347014@lists.php.net to get a copy of this message | ||
I have written the following code - and there is a problem. When I refer to $this->html within
the function parse_xml($xml) after the xml parsing function has been called, it appears to be empty.
But if I refer to it as the HTML sections are added by the xml event handlers then the content
appears to be there - could you please refer me to the relevant documentation or tell me what is
wrong?
<?
$me = new page_boy;
$me->parse_xml("<?xml version='1.0' ?><red>This is
red</red>");
class page_boy
{
var $db_connection;
var $html;
var $interface;
var $parser;
function page_boy()
{
$this->db_connection = @mysql_connect("%%%%", "%%%%", "%%%%");
@mysql_select_db("xgoat", $this->db_connection);
$this->interface = 1;
$this->html = "";
$this->parser = xml_parser_create();
xml_set_object($this->parser, &$this);
xml_set_element_handler($this->parser, "start_tag", "end_tag");
xml_set_character_data_handler($this->parser, "cdata");
}
function parse_xml($xml)
{
xml_parse($this->parser, $xml);
echo $this->html;
}
function start_tag($r_parser, $tagname, $tag_att)
{
$qre = mysql_query("SELECT content FROM tags WHERE mode = $this->interface
AND type = 'open'
AND name = '$tagname'", $this->db_connection);
$r_arr = mysql_fetch_array($qre);
$this->add_content($r_arr["content"]);
}
function end_tag($r_parser, $tagname)
{
$qre = mysql_query("SELECT content FROM tags WHERE mode = $this->interface
AND type = 'close'
AND name = '$tagname'", $this->db_connection);
$r_arr = mysql_fetch_array($qre);
$this->add_content($r_arr["content"]);
}
function cdata($r_parser, $cdata)
{
$this->add_content($cdata);
}
function add_content($ncnt)
{
$this->html = $this->html . $ncnt;
echo $ncnt;
}
}
?>