Hi!
Maybe, I'm not so correct, or something else, but..... Try to run the
script (php 4.0.6-dev).
Compiled with:
 ./configure --with-sablot
--with-dom --with-gettext --with-jpeg-dir=/usr --with-pops
--with-xml=/usr/local --with-gdbm=/usr/local --enable-gd-native-ttf
--with-gd --with-freetype-dir --with-mysql=/usr/local/mysql
--with-png-dir=/usr/local --enable-sysvshm=yes --enable-sysvsem=yes
--enable-debug=no

gcc, linux, glibc2*, latest sablot, expat, etc.

----------------------- Script --------------------
<?
$Bad=0; // try to set it to 1 for segfault

$taggz[0]="table_here";
$taggz[1]="mydir";
$functinz['table_here']="my_func";
$functinz['mydir']="my_func";

error_reporting(E_ALL);

Function my_func($atr){
echo("Variable:-----");
var_dump($atr);
}

class my_xml {
var $functinz;
var $tagz;
var $parser;
var $parzed;


function tag_open($parser,$tag,$attribz) {
echo("+++++tagopen\n");
$atr=$attribz;
        if(in_array($tag,$this->tagz))
        {
        echo("Bad girlz\n");
//      var_dump($atr);
        echo("KKKKKKKK\n");
        $this->parzed.="Qtes";
        //call_user_func($this->functinz[$tag],$atr);
        } else {
        $this->parzed.="<$tag";
        if (isset($atr)) {
        echo("Bag giez\n");
//      var_dump($atr);
        if(is_array($atr))
        {
        echo("AAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n");
        while (list($k, $v) = each($atr)) {
            $this->parzed.=" $k=\"$v\"";
        }
        }
          } // is set
        $this->parzed.=">";
                } // else
        echo("End\n");
}

function my_xml(&$tags, &$func_array) {
global $Bad;
        $this->parzed="";
        $this->parser = xml_parser_create();
if($Bad)        xml_set_object($this->parser,&$this);
        xml_set_element_handler($this->parser,"tag_open","tag_close");
        xml_set_character_data_handler($this->parser,"cdata");
        xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);
        $this->functinz=&$func_array;
        $this->tagz=&$tags;
        }


function cdata($parser,$cdata) {
echo("+++++d\n");
        $this->parzed.=$cdata;
}

function tag_close($parser,$tag) {
echo("+++++tagclose\n");
        if(in_array($tag,$this->tagz)) {
                } else {
                $this->parzed.="</$tag>";
                }

}

function parze($data) {
    xml_parse($this->parser,$data);
return $this->parzed;
}

}


$a=new my_xml($taggz,$functinz);
if(!$Bad)       xml_set_object($a->parser,&$a);
$e=$a->parze("
<doka>
<a href=\"http://www.kiae.su\";>Buka
<table_here ID=\"958955897\">fgkljgkljgkljg</table_here>
</a>
<table_here ID=\"3\">fkfjhjkhkjhkjfhff</table_here>
\n");

xml_parser_free($a->parser);
echo($e);
echo("HHHHHHHHHHHHHHHHHHHHHHHHH\n");

?>


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to