Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Dziwne zmiany kodowania
fisty
post 28.08.2007, 12:32:40
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 28.08.2007

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


Witam,
napisałem skrypcik, na localu pięknie śmiga, skrypt korzysta z Lite Cache Peara, przy zapisie plików cache wyłączyłem kodowanie nazw plików, więc mają wygląd np "cache_default_informacje" gdzie "informacje" jest zmienna trafiającą do fukcji. W przypadku słów z polskimi litermi wszytko też ładnie śmigało, więc napisałem do tego generewanie "mapy" tego co w cache:

  1. <?php
  2. $pliki = scandir('./katalog-cache');
  3. unset($pliki[0], $pliki[1]);
  4. echo '
      ';
  5. foreach($pliki as $plik)
  6. {
  7. $nazwa = substr($plik, 14);
  8. echo '
  9. <a href="'.$nazwa.'.html">';echo ucfirst($nazwa);echo '</a href="'.$nazwa.'.html">';
  • }
  • echo '
  • ';
  • ?>


  • Po wgraniu na serwer (cal.pl) pliki cache zapisują się z krzakami, od supportu dowiedziałem się, że mają ustawione kodowanie iso-8859-2 i teraz zaczęły się schody... Ponieważ jestem początkujący to nie za bardzo mogę sobie sam z tym poradzić. Wszystkie "części" skryptu mam w utf-8, więc dodałem w części generującej mapę zmianę kodowania, przy pomocy iconv, z iso-8859-2 na utf-8 (skoro skrypt wysyła do serwera dane w utf-8 a ten to zamienia i zapisuje w iso), ale to nic nie dało - dalej krzaki, dałem odwrotnie tez nic, ale tu już pojawiły mi się "znajome krzaki" (o ile takie coś w ogóle jest winksmiley.jpg ), mała zmiana w skrypcie i 'niby działa', oto efekt końcowy:

    1. <?php
    2. $pliki = scandir('./katalog-cache');
    3. unset($pliki[0], $pliki[1]);
    4. echo '
        ';
    5. foreach($pliki as $plik)
    6. {
    7. $nazwa = substr($plik, 14);
    8. $nazwautf = iconv(&#092;"UTF-8", "ISO-8859-2", $nazwa);
    9. $nazwautf2 = iconv(&#092;"ISO-8859-2", "UTF-8", $nazwautf);
    10. echo '
    11. <a href="'.$nazwautf2.'.html">';echo ucfirst($nazwautf2);echo '</a href="'.$nazwautf2.'.html">';
    12. }
    13. echo '
    14. ';
    15. ?>


    Mam w związku z tym pytanie, czemu skoro te dane są w utf to muszę je zmieniać na iso i potem z poworotem na utf?
    Czy da się to jakoś optymalniej rozwiązać? (nie chodzi mi o zapis typu
    1. <?php
    2. $nazwautf2 = iconv(&#092;"ISO-8859-2\", \"UTF-8\", iconv(\"UTF-8\", \"ISO-8859-2\", substr($plik, 14)));
    3. ?>
    tylko inne rozwiązanie niż 2x zmiana kodowania)


    pozdrawiam i witam wszystkich na forum smile.gif

    edyta:
    Tak to wygląda w Krusaderze

    Ten post edytował fisty 28.08.2007, 13:30:39

    --------------------
    (-:
    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 Wersja Lo-Fi Aktualny czas: 13.06.2025 - 05:07