Seite 1 von 1
Fehler im Newsletter bei Import
Verfasst: Mi 17. Okt 2007, 11:06
von nomore
Hallo,
wenn man im Newsletter auf den Link zum Empfänger importieren klickt, erhalte ich folgende Fehlermeldung:
Code: Alles auswählen
Fatal error: Call to undefined function: str_split() in /home/user/www.domain.de/de/contenido/includes/include.recipients_import.php on line 127
Ist diese Problem bekannt?

Verfasst: Mi 17. Okt 2007, 19:57
von delinquent
Die Suche sagt nein. Aber die Suche sagt auch, dass es sich bei str_split um einen PHP 5 Befehl handelt. Wenn Du PHP 4 benutzt, ist der Fehler damit gefunden.
In dem Fall ist es sinnvoll, z.B. in includes/functions.general.php
Code: Alles auswählen
if (!function_exists("str_split"))
{
function str_split($text, $split = 1)
{
if (!is_string($text))
return false;
if (!is_numeric($split) && $split < 1)
return false;
$len = strlen($text);
$array = array();
$s = 0;
$e=$split;
while ($s <$len)
{
$e=($e <$len)?$e:$len;
$array[] = substr($text, $s,$e);
$s = $s+$e;
}
return $array;
}
}
oder ähnliches einzufügen.
Wenn man davon ausgeht, dass Contenido auf PHP 4 laufen soll, dann ist das in dem Fall ein Bug.
Für solche Fälle, wenn PHP Methoden nicht kennt, empfiehlt sich immer eine Suche auf php.net.
Siehe hier:
http://www.php.net/str_split
Verfasst: Mi 17. Okt 2007, 20:33
von Dodger77
verschoben
Verfasst: Sa 20. Okt 2007, 19:50
von HerrB
Die Zeile
Code: Alles auswählen
$sGroupName = str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname"));
durch
Code: Alles auswählen
$sGroupName = $oRcpGroup->get("groupname");
$sGroupName = str_replace(" ", "", $sGroupName);
$sGroupName = str_replace("\t", "", $sGroupName);
$sGroupName = str_replace("\n", "", $sGroupName);
$sGroupName = str_replace("\r", "", $sGroupName);
$sGroupName = str_replace("\0", "", $sGroupName);
$sGroupName = str_replace("\x0B;", "", $sGroupName);
ersetzen.
Ist die einzige Stelle, an der die Funktion eingesetzt wird. Verf$&%§*ckte Optimierung...
Gruß
HerrB
Verfasst: So 21. Okt 2007, 12:29
von delinquent
HerrB hat geschrieben:Die Zeile
Code: Alles auswählen
$sGroupName = str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname"));
durch
Code: Alles auswählen
$sGroupName = $oRcpGroup->get("groupname");
$sGroupName = str_replace(" ", "", $sGroupName);
$sGroupName = str_replace("\t", "", $sGroupName);
$sGroupName = str_replace("\n", "", $sGroupName);
$sGroupName = str_replace("\r", "", $sGroupName);
$sGroupName = str_replace("\0", "", $sGroupName);
$sGroupName = str_replace("\x0B;", "", $sGroupName);
ersetzen.
...oder so.
HerrB hat geschrieben:Ist die einzige Stelle, an der die Funktion eingesetzt wird. Verf$&%§*ckte Optimierung...
Gruß
HerrB
Nicht aufregen, klappt doch alles wunderbar

Verfasst: Mi 31. Okt 2007, 13:32
von funomat
Muss das bei der 4.6.23 nicht so aussehen:
das
Code: Alles auswählen
$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname")))));
ersetzen durch
Code: Alles auswählen
$sGroupName = $oRcpGroup->get("groupname");
$sGroupName = str_replace(" ", "", $sGroupName);
$sGroupName = str_replace("\t", "", $sGroupName);
$sGroupName = str_replace("\n", "", $sGroupName);
$sGroupName = str_replace("\r", "", $sGroupName);
$sGroupName = str_replace("\0", "", $sGroupName);
$sGroupName = str_replace("\x0B;", "", $sGroupName);
//vorsichtshalber drin lassen, falls man auf PHP5 umsteigen sollte!!
//$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname")))));
$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . $sGroupName)));