Autor Zpráva
Igor
Profil
Mám script, který mi načítal soubor (do vícerozměrného pole). Původně probíhalo načítání souboru v kódování CP1250, ale pak jsem ho uložil pod UTF-8 a vyskytl se mi problém. Totiž na prvním řádku, první sloupec se vyskytují tři "znaky" které nejsou vidět a mají ordinální hodnotu 239,187,191 a nevím kde se tam vzali a jak se jich zbavit

if ($options_file):
  $path = "./".$options_file;
  if (!file_exists($path)) die("<b>Chyba při otevírání souboru:</b> $path nenalezen.");
  $temp_arr = explode("\n",file_get_contents($path));
  $options_count = count($temp_arr);
  foreach ($temp_arr as $line): // odstranit zalomení ord 13 (při print_r() není vidět!) 
     if (mb_detect_encoding($line, 'UTF-8') === false) die("<b>Error:</b> Preparing options... Read \$line is not in UTF-8.</b> Make conversion of volby.txt");;
     $line = explode(",",$line);
     $last = count($line)-1;
     $line[$last] = trim($line[$last]);  
     $options[0][] = $line;
  endforeach;
  if (count($options[0][0])==1) die("<b>Chyba při parsování souboru:</b> $path . Nesprávně nastavený oddělovač?");
  if (count($options[0][count($options[0])-1])==1) die("<b>Chyba při parsování souboru:</b> $path . Prázdný řádek na konci souboru!");
  "";
endif;

Miloš
Profil
Ty tři znaky budou BOM.
http://cs.wikipedia.org/wiki/BOM#BOM

Soubor ulož v nějakém editoru, který umí ukládat UTF-8 bez BOMu, například PSPad.
Igor
Profil
Miloš:
Dík za informaci. Raději se ale pokusím ho detekovat a odstranit z pole:
Odkaz

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0