| |
|
|
| | читаю сначала из xml файла данные на русском windows-1251 потом добавляю данные и переписываю весь фаил XML но при этом старые данные принимают вид краказяблы
<?php
class mathematica
{
var $array_Q = array();
var $array_U = array();
var $array_S = array();
var $array_W = array();
var $array_T = array();
var $array_F = array();
var $insideItemtQ = false;
var $insideItemtU = false;
var $insideItemtS = false;
var $insideItemtW = false;
var $insideItemtT = false;
var $insideItemtF = false;
var $insideItemt = false;
var $tag = "";
function startElement($parser, $tagName, $attrs)
{
$this->tag = $tagName;
switch($tagName)
{
case "TRANSPORT":
$this->insideItemT = true;
break;
case "PLACEOF_QUARRYING":
$this->insideItemQ = true;
break;
case "PLACEOF_UNSHIPPING":
$this->insideItemU = true;
break;
case "UNSHIPPING":
$this->insideItemS = true;
break;
case "WORKING":
$this->insideItemW = true;
break;
case "FINAL_PLACE":
$this->insideItemF = true;
break;
case "ITEM":
$this->insideItem = true;
break;
}
}
function endElement($parser, $tagName)
{
switch($tagName)
{
case "TRANSPORT":
$this->insideItemT = false;
break;
case "PLACEOF_QUARRYING":
$this->insideItemQ = false;
break;
case "PLACEOF_UNSHIPPING":
$this->insideItemU = false;
break;
case "UNSHIPPING":
$this->insideItemS = false;
break;
case "WORKING":
$this->insideItemW = false;
break;
case "FINAL_PLACE":
$this->insideItemF = false;
break;
case "ITEM":
$this->insideItem = false;
break;
}
}
function returnArray($ret)
{
if($ret==0)
return $this->array_T;
if($ret==1)
return $this->array_Q;
if($ret==2)
return $this->array_U;
if($ret==3)
return $this->array_S;
if($ret==4)
return $this->array_W;
if($ret==5)
return $this->array_F;
}
function characterData($parser, $data)
{
if($this->insideItem==true)
switch($this->tag)
{
case $this->insideItemT:
array_push ($this->array_T, $data);
break;
case $this->insideItemQ:
array_push ($this->array_Q, $data);
break;
case $this->insideItemU:
array_push ($this->array_U, $data);
break;
case $this->insideItemS:
array_push ($this->array_S, $data);
break;
case $this->insideItemW:
array_push ($this->array_W, $data);
break;
case $this->insideItemF:
array_push ($this->array_F, $data);
break;
}
}
}
$xml_parser = xml_parser_create();
$rss_parser = new mathematica();
xml_set_object($xml_parser, & $rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp = fopen("load.xml", "r")
or die("Error reading RSS data!");
while($data = fread($fp, 4096))
{
xml_parse($xml_parser, $data, feof($fp))
or die("Error parsing RSS data!");
}
fclose($fp);
$ttt = $rss_parser->returnArray(0);
$qqq = $rss_parser->returnArray(1);
$uuu = $rss_parser->returnArray(2);
$sss = $rss_parser->returnArray(3);
$www = $rss_parser->returnArray(4);
$fff = $rss_parser->returnArray(5);
if(isset($_POST['POQ']))
$POQ = $_POST['POQ'];
if(isset($_POST['POU']))
$POU = $_POST['POU'];
if(isset($_POST['UNS']))
$UNS = $_POST['UNS'];
if(isset($_POST['WOR']))
$WOR = $_POST['WOR'];
if(isset($_POST['TRT']))
$TRT = $_POST['TRT'];
if(isset($_POST['FPL']))
$FPL = $_POST['FPL'];
if($POQ && $POU && $UNS && $WOR && $TRT && $FPL)
{
$xml = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>";
array_push ($qqq, $POQ);
array_push ($uuu, $POU);
array_push ($sss, $UNS);
array_push ($www, $WOR);
array_push ($ttt, $TRT);
array_push ($fff, $FPL);
//print_r($qqq);
foreach($qqq as $i => $v)
$qqq[$i] = "<item>".$v."</item>";
foreach($uuu as $i => $v)
$uuu[$i] = "<item>".$v."</item>";
foreach($sss as $i => $v)
$sss[$i] = "<item>".$v."</item>";
foreach($www as $i => $v)
$www[$i] = "<item>".$v."</item>";
foreach($ttt as $i => $v)
$ttt[$i] = "<item>".$v."</item>";
foreach($fff as $i => $v)
$fff[$i] = "<item>".$v."</item>";
// echo "|".implode(" ",$fff)."|";
$xml_2 = "<transport_data><placeof_quarrying>".implode(" ",$qqq)."</placeof_quarrying><placeof_unshipping>".implode(" ",$uuu)."</placeof_unshipping><unshipping>".implode(" ",$sss)." </unshipping><working>".implode(" ",$www)."</working><transport>".implode(" ",$ttt)."</transport><final_place>".implode(" ",$fff)."</final_place></transport_data>";
$xml = $xml.$xml_2;
echo "$xml";
$fp = fopen ("load.xml", "w");
fwrite ($fp, $xml);
fclose ($fp);
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: himera7
(26.11.2007 в 00:55)
| | | а разве XML не должен быть в кодировке UTF-8? | |
| |
|
|
| |
|
|
| |
для: KPETuH
(26.11.2007 в 09:05)
| | | мне нужен windows 1251 | |
| |
|
|
| |
|
|
| |
для: himera7
(26.11.2007 в 10:23)
| | | хм... работаете с xml в utf-8 формате.
когда достаете чтоб показать,перекодируйте на лету в нужную вам кодировку | |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(26.11.2007 в 10:34)
| | | фишка в чем! в пхп фаиле все отображается нормально , все слова на русском пишутся нормально. но когда я переписываю данные в хмл ,то те данные которые были в фаиле до обробтки пхп становятся краказяблами а новые остаются нормально (переданные методом пост) | |
| |
|
|
| |
|
|
| |
для: himera7
(26.11.2007 в 15:01)
| | | когда ознакамливался с XML вездн жирным шрифтом писали по избежание проблем юзайте UTF-8, и вообще чем вас UTF-8 не устраивает... | |
| |
|
|
| |
|
|
| |
для: himera7
(26.11.2007 в 00:55)
| | | попробуйте для пхп скрипта в хеадер поставить 1251
походу у вас сам браузер кодировку по умолчанию берёт, соотв в этой кодировке хмл и открывает | |
| |
|
|