Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]import pliku csv w innym kodowaniu. Czy to normalne?, Strona w UTF a plik zapisany jako ANSI - ISO
kukix
post
Post #1





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

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


Wtam.

Przygotowuje moduł importu danych z pliku csv.
Problem w tym, że strona jest w UTF-8, natomiast pliki csv są w formacie ISO (zapisane jako ANSI)..
Podczas wykonywania importu w miejscach gdzie są polskie litery urywa sie tekst..

Po zapisaniu pliku csv jako UTF-8, import przebiega pomyslnie.


W jaki sposób użyć funkcji iconv() w tym przypadku?

  1. <?php
  2. $uchwyt = fopen ($sciezka_do_pliku,"r");
  3.  
  4. while (($data = fgetcsv($uchwyt, 1000, ";")) !== FALSE)  {
  5.  
  6. $data[0]
  7. $data[1]
  8. $data[2]
  9.  
  10. }
  11. ?>


Będe bardzo wdzięczny za wszelkie wypowiedzi.

Ten post edytował kukix 11.12.2008, 12:03:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale po co implode" title="Zobacz w manualu PHP" target="_manual? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Przeciez dostajesz gotową tablicę, przez którą możesz przeiterować iconv" title="Zobacz w manualu PHP" target="_manual, to jaki problem?
Go to the top of the page
+Quote Post
kukix
post
Post #3





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

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


Cytat(erix @ 13.12.2008, 16:22:31 ) *

Wspomniałem o implode, ponieważ wookieb podał mi link do tej funkcji..

Zrobiłem to tak:
  1. <?php
  2. $uchwyt = fopen ($sciezka_do_pliku,"r");
  3.  
  4. function zmiana_utf (&$element1, $klucz) {
  5.  $element1 =  iconv('ISO-8859-2', 'UTF-8', $element1);
  6. }
  7.  
  8. while (($data = fgetcsv($uchwyt, 1000, ";")) !== FALSE)  {
  9.  
  10.  array_walk ($data, 'zmiana_utf');
  11.  
  12.  $data[0]
  13.  $data[1]
  14.  $data[2]
  15.  
  16. }
  17. ?>


Jest już prawie ok, problem tylko w tym, że literka "Ś" po przekonwerterowaniu znika..
Wydaje mi sie, że źle użyta jest funkcja iconv()


może zamiast 'ISO-8859-2' powinno być coś innego?

plik CSV jest zapisany w Editplus z kodowaniem ANSI.

Ten post edytował kukix 15.12.2008, 12:55:35
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: 5.10.2025 - 11:09