Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konwersja plików w php
Amadeusz1213
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.05.2015

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


Witam.Mam problem z pewnym zadaniem. Treść jego jet następująca:
Napisz aplikację konwertującą ze standardu Windows-1250 do standardu ISO-8850-2. Aplikacja powinna wczytywać plik w formacie Windows 1250 i zapisywać plik skonwertowany z rozszerzeniem "ISO".

Napisałem formularz na wczytanie pliku na serwer, który wygląda tak:

  1. <form enctype="multipart/form-data" action="odbierz plik.txt" method="post">
  2. <p>Wyslij plik
  3. <input type="file" name="plik" size="30"></p>
  4. <p><input type="submit" value="Wyslij" name="wyslij></p>
  5. </body>


Nie wiem jak otworzyć i skonwertować plik, który jest wczytany na serwerze. Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Xelah
post
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 12.05.2013
Skąd: Hamburg

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


Jak już napisałem wcześniej, nie jesteś w stanie powiedzieć, czy dane kodowanie to Windows-1250. Możesz się pobawić w następujący sposób:

1. mb_detect_encoding ze strict ustawionym na true w celu sprawdzenia, czy to jest kodowanie, które mb obsługuje.
2. Jeśli nie to sprawdzasz, czy zadany string zawiera znaki z przedziału 0x00-0x1F lub 0x7F-0x9F. Jeśli tak, to na pewno nie jest ISO, bo layout-y ISO nie mają pod tymi kodami znaków.

Teraz możesz, z dosyć dużym prawdopodobieństwem, powiedzieć, że to może być CP1250. A czy jest? Tego się nie dowiesz, bo inne kodowania z CP mają znaki z tego same zakresu (nie wszystkie ale to musiałbyś znowu porównywać wsztkie code page layout-y i dalej nie będziesz miał 100% pewności).

To jest tylko brzydki workaround, który na pewno nie rozwiąże problemu. Niestety albo wymusisz na userze, żeby nie ładował niczego w innego niż UTF-8 albo skończysz z rozkwaszonymi znakami tu i ówdzie :/

Ten post edytował Xelah 20.05.2015, 07:16:32
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 19:51