Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][xml] Parsowanie pliku XMLReader() i zmina kodowania z UTF na ISO, jak użyć funkcji iconv() a może zastosować swoją?
kukix
post 25.09.2008, 00:25:13
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Witam.

Mam taką funkcję, która parsuje plik xml.
Probvlem w tym, że wszystkie znaki zapisywane są przy uzyciu kodowania UTF-8.
Ustawiając na w p[rzegladarce strone kodową UTF-8 (z menu prawego klawisza) pokazują się poprawnie polskie literki.

  1. <?php
  2. while($reader->read()) {
  3.    if($reader->nodeType == XMLReaderELEMENT) {
  4.        $name = $reader->name;
  5.    }
  6.  
  7.    if($reader->nodeType == XMLReaderTEXT ||
  8.       $reader->nodeType == XMLReaderCDATA)
  9.    {
  10.        echo $name.' '.$reader->value.'<br />';
  11.    }
  12. }
  13. ?>


Wiem, że funkcja iconv() służy do zmiany kodowania, jednak nie chce zadziałac.

Mam również swoją funkcję zmiany znaków:
  1. <?php
  2. function polskie_znaki($tekst) {
  3.  
  4.    $znak_a[1] = 'Ä…';
  5.    $znak_a[2] = 'Ä„';
  6.    $znak_a[3] = 'Ĺş';
  7.    $znak_a[4] = 'Ĺą';
  8.    $znak_a[5] = 'ĹĽ';
  9.    $znak_a[6] = 'Ĺ&raquo;';
  10.    $znak_a[7] = 'Ĺ›';
  11.    $znak_a[8] = 'Ĺš';
  12.    $znak_a[9] = 'ć';
  13.    $znak_a[10] = 'Ć';
  14.    $znak_a[11] = 'Ä™';
  15.    $znak_a[12] = 'Ę';
  16.    $znak_a[13] = 'Ĺ„';
  17.    $znak_a[14] = 'Ń';
  18.    $znak_a[15] = 'Ĺ‚';
  19.    $znak_a[16] = 'Ł';
  20.    $znak_a[17] = 'Ăł';
  21.    $znak_a[18] = 'Ă“';
  22.  
  23.    $znak_b[1] = 'ą';
  24.    $znak_b[2] = 'Ą';
  25.    $znak_b[3] = 'ź';
  26.    $znak_b[4] = 'Ź';
  27.    $znak_b[5] = 'ż';
  28.    $znak_b[6] = 'Ż';
  29.    $znak_b[7] = 'ś';
  30.    $znak_b[8] = 'Ś';
  31.    $znak_b[9] = 'ć';
  32.    $znak_b[10] = 'Ć';
  33.    $znak_b[11] = 'ę';
  34.    $znak_b[12] = 'Ę';
  35.    $znak_b[13] = 'ń';
  36.    $znak_b[14] = 'Ń';
  37.    $znak_b[15] = 'ł';
  38.    $znak_b[16] = 'Ł';
  39.    $znak_b[17] = 'ó';
  40.    $znak_b[18] = 'Ó';
  41.  
  42.    $tekst = ereg_replace($znak_a[$i], $znak_b[$i], $tekst);
  43.  
  44.    return $tekst;
  45.  
  46. }
  47. ?>


Czy funkcją iconv() mozna zastąpić tą przygotowaną przezemnie? będze wydajniejsza?

Będe bardzo wdzięczny za wszelkie wypowiedzi.



------------------- EDIT ----------------
Funkcji iconv próbowalem, jednak coś nie działa:

  1. <?php
  2. echo iconv('UTF-8', 'ISO-8859-2', 'przejściówki');
  3. ?>


Ten post edytował kukix 25.09.2008, 00:26:14
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 26.06.2025 - 13:06