Tryag File Manager
Home
-
Turbo Force
Current Path :
/
home
/
cluster1
/
data
/
bu01
/
1121861
/
html
/
old_jlex_versions
/
beta
/
2005-08-04 php4
/
Upload File :
New :
File
Dir
/home/cluster1/data/bu01/1121861/html/old_jlex_versions/beta/2005-08-04 php4/symbol_replacer.php4
<? class symbol_replacer { var $parser; var $fields; var $xml; var $data; var $symbols; var $substitutes; var $has_symbols; function symbol_replacer() { $this->fields = array(); $this->xml = ""; $this->data = ""; $this->symbols = array(); $this->substitutes = array(); $this->has_symbols = false; } function startHandler($xp,$element,$attribs) { $element = strtolower($element); $this->xml .= "<$element"; foreach($attribs as $key=>$value) { $key = strtolower($key); $this->xml .= " $key='$value'"; } $this->xml .= ">"; } function endHandler($xp,$element) { $element = strtolower($element); if(in_array($element,$this->fields) && $this->has_symbols) { $temp = $this->substitute($this->data); $this->data = $temp; } $this->xml .= $this->data."</$element>\n"; $this->data = ""; } function cDataHandler($xp,$data) { $data = trim($data); if($data != "") { //$data = ereg_replace("&","&",$data); //$data = ereg_replace("<","<",$data); //$data = ereg_replace(">",">",$data); $data = utf8_encode($data); $this->data .= $data; } } function get_fields($fields_file) { $in = fopen($fields_file,"r"); while($line = fgets($in)) { $field = trim($line); $fields[] = $field; } return $fields; } function make_symbols_table($symbols_file) { $in = fopen($symbols_file,"r"); while($line = fgets($in)) { $vals = explode(" = ",$line); $substitute = trim($vals[1]); if($substitute == "''") { $substitute = ""; } $this->symbols[] = $vals[0]; $this->substitutes[] = $substitute; $this->has_symbols = true; } } function substitute($string) { $string = str_replace($this->symbols,$this->substitutes,$string); return $string; } function get_substituted_xml($xml, $fields_file, $symbols_file) { $this->fields = $this->get_fields($fields_file); $this->parser = xml_parser_create(); xml_set_object($this->parser,$this); xml_set_element_handler($this->parser,"startHandler","endHandler"); xml_set_character_data_handler($this->parser,"cDataHandler"); $this->make_symbols_table($symbols_file); xml_parse($this->parser,$xml); return $this->xml; } } $symbol_replacer = new symbol_replacer(); $xml = $symbol_replacer->get_substituted_xml($xml,"../lex/macron_fields.txt","../lex/macrons.txt"); $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."<?xml-stylesheet href='$stylesheet' type='text/xsl'?>".$xml; header("Content-Type: application/xml"); echo $xml; ?>