Autor | Zpráva | ||
---|---|---|---|
tttvitek Profil * |
#1 · Zasláno: 2. 7. 2013, 15:26:29
Zdravím, potřebuji změnit znakovou sadu array pomocí fce iconv, ale dostávám akorát tuto hlášku Warning: iconv() expects parameter 3 to be string, array given in /data/web/virtuals/46112/virtual/www/pes76.php on line 6
$data=iconv("CP1250","UTF8//TRANSLIT",$data); |
||
juriad Profil |
#2 · Zasláno: 2. 7. 2013, 15:35:40
Nemůžeš změnit kódování pole, jen řetězců; chceš asi něco takového:
<?php $data2 = array(); foreach ($data as $klic => $hodnota) { $data2[$klic] = iconv("CP1250","UTF8//TRANSLIT", $hodnota); } ?> |
||
tttvitek Profil * |
#3 · Zasláno: 2. 7. 2013, 15:40:09 · Upravil/a: tttvitek
Díky, ale pořád stejný problém. TeĎ mi to navíc tuto hlášku vypisuje vícekrát. Warning: iconv() expects parameter 3 to be string, array given in .........
Díky za radu, ale nějak mi to stále nefunguje. Pořád to vypisuje tuto hlášku, akorát teĎ vícekrát. |
||
Alphard Profil |
#4 · Zasláno: 2. 7. 2013, 15:45:23
Tak možná máte vícerozměrné pole. Princip je snad zřejmý, ne? Projít pole po složkách a překódovat vždy jednotlivé řetězce. Lze použít i array_map(), ale cyklus je asi názornější.
|
||
juriad Profil |
#5 · Zasláno: 2. 7. 2013, 17:40:02
# poznamka: ty znaky & u promennych zajisti, ze zmena muze probehnout namiste function iconv_all($z, $do, &$data) { if(is_array($data)) { # pokud je to pole foreach($data as $klic => &$hodnota) { # tak ho projdi po prvcich iconv_all($z, $do, $hodnota); # pro kazdy se zavolej rekurzivne } } else if(is_string($data)) { # pokud je to retezec $data = iconv($z, $do, $data); # tak ho roznou prekonvertuj } } $data = array(array('ášďëŕúüô', 'äěéřťýůíó', 'žßčçñňĺ'), 'ÄĚÉŘŤÝŮÍÓ'); iconv_all('CP1250', 'UTF8//TRANSLIT', $data); print_r($data); |
||
Časová prodleva: 11 let
|
0