Autor Zpráva
Fikus
Profil
Skriptem zpracovávám uživatelský soubor csv, který má pevně daný tvar dat, který se liší od mého očekávání:)

v escapování - uvozovky neescapuje (řetězec ah"o"j je uložen jako "ah"o"j"), php to pak nesežere - očekává předřazení lomítka před uvozovkami (konkrétně fce fgetcsv)
Nenapadá mě jak to ošetřit, když délka řetězce je proměnlivá.

v kódování - soubory jsou ve formátu cp1250, ale já mám db i php na utf8.
vyřešeno: na každý řetězec řádek aplikuju iconv
Ale nešlo by nějak elegantněji určit, že celý soubor je v cp1250, myslím, že by se tak skript urychlil..

Jak soubor načíst do db ve správném tvaru?
sventek
Profil *
mám uplně stejnou konstalaci kódování jak popisuješ a už jsem vyzkoušel snad všechny druhy kódování a pořád tam zůstávají nějaké špatné znaky, mohl bych tě poprosit o část kódu s tim iconv? děkuji moc
Alphard
Profil
addslashes()
Mastodont
Profil
Fikus
Vyházej si z toho ty nadbytečné uvozovky přes preg_match a preg_replace:


$var = '"nazd"ar";"ahoj";"do"""brou noc";"paráda" "leh"nout s"i na záda"';

$reg = '/([^;])&"([^;])/U';
while (preg_match($reg, $var) > 0) {
$var = preg_replace($reg, '&1&2', $var);
}
echo $var;
// "nazdar";"ahoj";"dobrou noc";"paráda lehnout si na záda"


& vyjadřuje zpětné lomítko
Toto téma je uzamčeno. Odpověď nelze zaslat.

0