<?php $i = 0;
/*
**Автор: Иокша СА
http://web-style.h1.ru/
****Определение базы данных
CREATE TABLE `xml` (
`id` int(11) NOT NULL auto_increment,
`c1` varchar(255) default NULL,
`c2` varchar(255) default NULL,
`c3` varchar(255) default NULL,
`c4` varchar(255) default NULL,
`c5` varchar(255) default NULL,
`c6` varchar(255) default NULL,
`c7` varchar(255) default NULL,
`c8` varchar(255) default NULL,
`c9` varchar(255) default NULL,
`c10` varchar(255) default NULL,
`c11` varchar(255) default NULL,
`c12` varchar(255) default NULL,
`c13` varchar(255) default NULL,
`id_razdel` int(11) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
*************************************
*/
//**** функция перевода 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");
?>
_________________