Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML] Polskie znaki
Forum PHP.pl > Forum > Przedszkole
skowron-line
Witam mam pytanie wczytuje sobie plik xml który jest w kodowaniu windows-1250
W atrybutach znajdują się polskie znaki i przeczytałem na necie ze można sobie zamienić polskie znaki na znaczniki unicode więc napisałem sobie prosta klasę
  1. <?php
  2. class Convert {
  3.    /**/
  4.    var $polishSign2UniCodeArray = array(
  5.                    'Ą' =>'h',
  6.                    'ą' =>'i',
  7.                    'Ć' =>'j',
  8.                    'ć' =>'k',
  9.                    'Ę' =>'v',
  10.                    'ę' =>'w',
  11.                    'Ł' =>'',
  12.                    'ł' =>'Ž',
  13.                    'Ń' =>'',
  14.                    'ń' =>'',
  15.                    'Ó' =>'&#00D3;',
  16.                    'ó' =>'&#00F3;',
  17.                    'Ś' =>'&#015A;',
  18.                    'ś' =>'&#015B;',
  19.                    'Ź' =>'ł',
  20.                    'ź' =>'&#017A;',
  21.                    'Ż' =>'&#017B;',
  22.                    'ż' =>'&#017C;'
  23.                    );
  24.  
  25.    function polishSign2UniCode( $data ){
  26.        
  27.        if( is_string( $data )){
  28.            $noPolishSign = str_replace( array_keys( $this->polishSign2UniCodeArray ), array_values( $this->polishSign2UniCodeArray  ), $data );
  29.        }elseif( is_array( $data )){
  30.            $noPolishSign = array();
  31.            foreach( $data as $key => $value ){
  32.                if( is_string( $key ))
  33.                    $key = $this->polishSign2UniCode( $key );
  34.                    
  35.                $noPolishSign[ $key ] = $this->polishSign2UniCode( $value );
  36.            }
  37.        }
  38.        return $noPolishSign;
  39.    }
  40.  
  41.    function uniCode2PolishSign( $data ){
  42.        
  43.        if( is_string( $data )){
  44.            $polishSign = str_replace( array_values( $this->polishSign2UniCodeArray ), array_keys( $this->polishSign2UniCodeArray ), $data );
  45.        }elseif( is_array( $data )){
  46.            $polishSign = array();
  47.            foreach( $data as $key => $value ){
  48.                if( is_string( $key ))
  49.                    $key = $this->uniCode2PolishSign( $key );
  50.                    
  51.                $polishSign[ $key ] = $this->uniCode2PolishSign( $value );
  52.            }
  53.        }
  54.        return $polishSign;
  55.    }
  56. }
  57. ?>

*klasa php4 bo tylko taki jest na serwerze
Odczytując plik zamieniam polskie znaki na znaczniki unicode, a po wyświetleniu chciałbym spowrotem zamienić z tym że pokazują mi się krzaki a w źrodle strony zamiast znakow unicode są krzaki. Próbowałem wczytać sobie polskie znaki z pliku txt i działa pieknie ale z tym mam problem.
Wyświetla się to jako obiekt simpleXml
Kod
   [0] => simplexmlobject Object
                        (
                            [@attributes] => simplexmlobject Object
                                (
                                    [BRUTTO] => 121.59
                                    [VAT] => 321.24
                                    [STAWKA] => 0.22
                                    [NET] => 123.35
                                    [USL] => UsÂŽugi Telekomunikacyjne
                                    [FAKT] => 31321
                                )

                        )
erix
Sory, ale po co wynajdujesz koło na nowo? Masz przecież iconv" title="Zobacz w manualu PHP" target="_manual.
skowron-line
Cytat(erix @ 25.11.2008, 17:49:47 ) *
Sory, ale po co wynajdujesz koło na nowo? Masz przecież iconv" title="Zobacz w manualu PHP" target="_manual.

Nie mam nic na swoja obronę. Winny exclamation.gif
@erix +1.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.