<?php $i = 0;
//**** функция перевода unicoda в рускую кодировку function utf8win1251($s){ $out = $c1 = ""; $byte2=false; for ($c=0;$c<strlen($s);$c++){ $i=ord($s[$c]); if ($i<=127) $out.=$s[$c]; if ($byte2){ $new_c2=($c1&3)*64+($i&63); $new_c1=($c1>>2)&5; $new_i=$new_c1*256+$new_c2; if ($new_i==1025){ $out_i=168; } else{ if ($new_i==1105){ $out_i=184; } else { $out_i=$new_i-848; } } $out.=chr($out_i); $byte2=false; } if (($i>>5)==6) { $c1=$i; $byte2=true; } } return $out; } //****
$file='ultra.xml'; include "mysql.php"; // вызыватеся когда встречается открывающийся тэг function startElement($parser, $name, $attrs) { global $i,$ch; if($name == "ROW"){ $i++; } if($name == "CELL"){ $ch = 1; } } // вызыватеся когда встречается закрывающийся тэг function endElement($parser, $name) { } // данные между откр и закр тегами function characterData($parser, $data) { global $i,$ch,$data_array; if($ch == 1){ $data_array[$i][] = $data; // echo $data."[$i]<br>";
$ch = 0; } } // создаем xml разборщик $xml_parser = xml_parser_create('UTF-8'); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($file, "r"))) { die("could not open XML input"); }
while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } //освобождает XML-разборщик xml_parser_free($xml_parser);
/* echo "<pre>"; $d=print_r($data_array,'TRUE'); echo "</pre>"; */
foreach($data_array as $key => $type) { // echo( // "<h2>STR:$key</h2>\n"."<ul>\n"); $m=0; unset($vb); // $sql="insert into xml.xml (c1,c2,c3,c4,c5,c6,c7,c9,c10,c11,c12,c13) values ("; $sql="insert into xml.xml ("; foreach($type as $ship) {
// echo("\t<li>[$m].$ship</li>\n"); $ship=join(split('\'',$ship),'"') ; $ship=join(split('\"',$ship),'"') ;
// $ship=join(split('\*',$ship),'') ; $vb[]=$ship; $m=$m+1;
}
for ($i2=0; $i2<$m; $i2++) { $vcv=$i2+1; $sql=$sql."c".$vcv.","; }; $bn5=strrpos($sql,","); $sql=substr($sql,'0',$bn5); $sql=$sql.") values (";
for ($i2=0; $i2<$m; $i2++) { $ship2=$vb[$i2] ; $sql=$sql."'$ship2',"; };
$bn5=strrpos($sql,","); $sql2=substr($sql,'0',$bn5); $sql2=$sql2.")";
// echo $sql2."<br>" ; $sql2= utf8win1251($sql2);
$result_id_s = mysql_query ($sql2)or die ("Query failed76\n"); } echo("</ul>\n");
< |