Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] dBASE
Forum PHP.pl > Forum > Przedszkole
nexis
Witajcie,

mam następujący skrypt, który zgrywa dane z pliku *.dbf do bazy danych MySQL:

  1. <?php
  2. $host = '';
  3.  
  4. $user = '';
  5.  
  6. $pass = '';
  7.  
  8. $db  = '';
  9.  
  10. mysql_pconnect($host, $user, $pass) or die ('Brak');
  11. mysql_select_db($db) or die ('Brak');
  12.  
  13. $db_path = 'cennik.dbf';
  14. $dbh  = dbase_open($db_path, 0);
  15. $count  = dbase_numrecords($dbh);
  16. $success = 0;
  17. $error  = 0;
  18. for ($i=1; $i<=$count; $i++) {
  19. $values = dbase_get_record($dbh, $i);
  20. for ($j=0; $j<=10; $j++) {
  21. $values[$j] = addslashes($values[$j]);
  22. }
  23. $values[4] = $values[4]*1.1;
  24. $query = "INSERT INTO products VALUES ('$values[0]', '$values[1]', '$values[2]', '$values[3]', '$values[4]', '$values[5]', '$values[6]', '$values[7]', '$values[8]', '$values[9]', '$values[10]')";
  25. if (mysql_query($query)) {
  26. $success++;
  27. } else {
  28. echo $query.'<br />'.mysql_error().'<br /><hr />';
  29. $error++;
  30. }
  31. }
  32.  
  33. echo 'Poprawnych zapytan: '.$success.'<br />Niepoprawnych zapytan: '.$error;
  34. ?>


Skrypt działa świetnie poza jedną rzeczą, a mianowicie kodowaniem polskich znaków. Otwierając plik spod Windows programem OpenOffice CALC poprawnie wyświetlają się polskie czcionki po wybraniu kodowania Eastern Europe (DOS/OS2-852). Co zatem muszę zmienić w swoim skrypcie, aby dane trafiały do bazy MySQL z prawidłowym kodowaniem?
emjot27
Cytat(nexis @ 25.10.2006, 22:32:42 ) *
[...] Co zatem muszę zmienić w swoim skrypcie, aby dane trafiały do bazy MySQL z prawidłowym kodowaniem?


Chciałbym odświeżyć ten temat, gdyż mam identyczny problem. Wiem, że należy użyć funkcji "iconv", tylko, ze nie wiem w jaki sposób i czy w ogóle ta funkcja ma zaimplementowany ten system kodowania znaków jakim jest DOS/OS2-852. Taki kod, nie daje żadnych wyników:

  1. <?php
  2. [...]
  3. print iconv("DOS/OS2-852","ISO-8859-2","$values[3]");
  4. [...]
  5. ?>

Taki kod nic nie wyświetla, a gdy próbuje z innymi formatami np z ISO-8859-1 są oczywiście "krzaczki". Może format DOS/OS2-852 ma inną nazwę o której mi nic nie wiadomo. Jeżeli nie, to jakie inne rozwiązanie proponujecie. Proszę o pomoc, za co z góry dziękuje.
Pozdrawiam.
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.