Tryag File Manager
Home
-
Turbo Force
Current Path :
/
home
/
cluster1
/
data
/
bu01
/
1121861
/
jlex
/
nahuatl
/
php4
/
Upload File :
New :
File
Dir
//home/cluster1/data/bu01/1121861/jlex/nahuatl/php4/sense_changer.php4
<? class sense_changer { var $parser; var $out; var $data; var $new_fields; var $dialects; var $last_dialect; function sense_changer() { $this->new_fields = array(); $this->dialects = array(); } function get_fields($fields_file) { $in = fopen($fields_file,"r"); while($line = fgets($in)) { $line = trim($line); $vals = explode(" = ",$line); $new_field = $vals[0]; $field = $vals[1]; if(count($vals) == 3) { $dialect = $vals[2]; $this->dialects[$field] = $dialect; } $this->new_fields[$field] = $new_field; } asort($this->new_fields); } function rewrite($field, $value) { $new_field = $this->new_fields[$field]; $s = "\\$new_field $value\n"; if(array_key_exists($field,$this->dialects)) { $dialect = $this->dialects[$field]; if(ereg("se|pn",$field)) { $this->last_dialect = "\\".$new_field."_d $dialect\n"; } else { $s .= "\\".$new_field."_d $dialect\n"; } } else if(ereg("ss|ps",$field)) { $s .= $this->last_dialect; } return $s; } function startHandler($xp,$element,$attribs) { $element = strtolower($element); } function endHandler($xp,$element) { $element = strtolower($element); if($element != "refgroup") { if(array_key_exists($element,$this->new_fields)) { $s = $this->rewrite($element,$this->data); fwrite($this->out, $s); } else { fwrite($this->out,"\\$element $this->data\n"); } } else { fwrite($this->out,"\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 change_senses($xml,$new_shoebox_name,$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->get_fields($fields_file); $in = fopen($xml,"r"); $this->out = fopen($new_shoebox_name,"w"); while($line = fgets($in)) { xml_parse($this->parser,$line,false); } } } $sc = new sense_changer(); $sc->change_senses("ActiveNahuatl_2005_august_4.xml","fixed_senses.txt","senses_conversion.txt"); ?>