Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parsowanie xml bład kodowania, Input is not proper UTF-8, indicate encoding !
janiek_j
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 31.07.2008

Ostrzeżenie: (0%)
-----


Witam
mam taki problem

mam skrypt php ktory generuje mi xml'a
1 wykonuje skrypt i zapisuje wyniki do pliku xml w celu dalszego przetwarzania
2 ładuje plik xml w celu parsowania

pojawia sie problem kodowania

w naglowku skryptu php do generowania xml mam
CODE
header('Content-type: application/xml; charset="utf-8"');


echo '<?xml version="1.0" encoding="UTF-8"?>';



kod skryptu ktory zapisuje wyniki zwrocone przez skrypt do generowania xml, i do parsowania
CODE

class curl {
var $timeout;
var $url;
var $file_contents;
function getFile($url,$timeout=0) {


$ch = curl_init();
$this->url = $url;
$this->timeout = $timeout;
curl_setopt ($ch, CURLOPT_URL, $this->url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);
$this->file_contents = curl_exec($ch);
if ( curl_getinfo($ch,CURLINFO_HTTP_CODE) !== 200 ) {
return('Bad Data File '.$this->url);
} else {
return $this->file_contents;
}
}
}

// tworzymy nowy zasob curl
$ch = curl_init();

// ustawiamy opcje URL i naglowka
curl_setopt($ch, CURLOPT_URL, "gener.xml.php?page=0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


$dane = curl_exec($ch);

// przypisanie zmniennej $file nazwy pliku
$file = "plik.xml";

// uchwyt pliku, otwarcie do dopisania
$fp = fopen($file, "w");

// blokada pliku do zapisu
flock($fp, 2);

// zapisanie danych do pliku
fwrite($fp, $dane);

// odblokowanie pliku
flock($fp, 3);

// zamknięcie pliku
fclose($fp);

// usuwamy zasob curl i zwalniamy zasoby systemu
curl_close($ch);




if (file_exists($file))
{

$xml = simplexml_load_file($file);

$result = $xml->xpath("/rodzina/moja/dzieci[0]");

foreach ($result as $key => $value)
{
echo $value->nazwa . '
';
}
}
else
{
exit('Nie mozna otworzyc pliku.');
}

?>


dostaje błąd
parser error : Input is not proper UTF-8, indicate encoding

Ten post edytował janiek_j 15.08.2008, 11:21:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
extreme-dh
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 3
Dołączył: 25.05.2008

Ostrzeżenie: (0%)
-----


Po co wstawiłeś tą klasę curl skoro jej nie używasz w tym przykładzie.

Być może plik gener.xml.php?page=0 nie generuje zawartości w UTF-8, sprawdź to i jesli to nie jest UTF użyj iconv do przekonwertowania kodowania
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:30