Hallo,
da das komplette Programm in PHP4 geschrieben ist, wollte ich die Kompatibilität erhalten und das UTF-( encoding über das bei php.net gefundene Skript relaisieren.
ALlerdings arbeitet die Funktion nicht wie gewünscht.
Das ist der aktuelle Quellcode:
function utf8_decode_array (&$value, &$key, $userdata = "") {
if(is_array($value)) {
array_walk_recursive2 ($value, 'utf8_decode_array');
} else {
$value = utf8_decode($value);
}
}
function array_walk_recursive2(&$input, $funcname, $userdata = "")
{
if (!is_callable($funcname))
{
return false;
}
if (!is_array($input))
{
return false;
}
foreach ($input AS $key => $value)
{
if (is_array($input[$key]))
{
array_walk_recursive2($input[$key], $funcname, $userdata);
}
else
{
$saved_value = $value;
if (!empty($userdata))
{
$funcname($value, $key, $userdata);
}
else
{
$funcname($value, $key);
}
if ($value != $saved_value)
{
$input[$key] = $value;
}
}
}
return true;
}
array_walk_recursive2 ($this->varToImport, utf8_decode_array);
Das encoding funktioniert relativ gut. Allerdings werden die Arrays in dem Array nicht umkodiert.
Ich finde den Fehler in dem vorhandenen Skript nicht. Das Problem taucht auch auf, wenn ich die vorgefertigte Funktion aus PHP5 nehmen.
Hat jemand eine Idee, wie ich die Arrays in dem Array auch noch bearneiten kann ?
Besten dank im vorraus.