PHP - Fehler: Notice: Uninitialized string offset:

Hallo lieber Experte Expertin,
Ich wollte mit Php so eine Art Codierungsmaschine programmieren. Wie ich das mache ist kein Problem, nur bekomme ich eine Fehlermeldung, mit der ich nichts anfangen kann. Also nicht weiß, wo der Fehler liegt.

[code]
function ae ($ct = ‚‘) {
$ct = substr($ct,1);
$strlen2 = strlen($ct);
$strlen2 = $strlen2 - 1;
$count3 = ($strlen2 / 2);
$count3 = round($count3);
$ct4 = explode("\r\n", $ct);
$ct0 = $ct4[0];
$ct1 = $ct4[1];
echo ’ Decodierter Text :
';
for($i = 0; $i

Wenn der String 0 Zeichen lang ist, wie willst du dann damit einen Substring ausführen, der dir alles ab der Stelle 1 (also dem zweiten Zeichen) zurückgiebt?

Erstmal musst Du prüfen ob $ct leer ist, wenn ja, brauchst Du gar nicht damit arbeiten :smile:

das habe ich jetzt geändert auf:
function ae ($ct = ‚‘) {
if (empty($ct) && $ct!==0)
{
exit();
}
$ct = substr($ct,1);
$strlen2 = strlen($ct);
$strlen2 = $strlen2 - 1;
$count3 = ($strlen2 / 2);
$count3 = round($count3);
$ct4 = explode("\r\n", $ct);
$ct0 = $ct4[0];
$ct1 = $ct4[1];
echo ’ Decodierter Text :
';
for($i = 0; $i

Hallo,

wenn ich das richtig sehe, liegen die Fehler in den Zeilen

$ct1 = $ct4[1];

und

$text = $ct0{$i}.$ct1{$i};;

Die Meldung „Notice: Undefined offset: 1 in C:\xampp\htdocs\kod.php on line 98“ tritt auf, wenn $ct1 mit Werten gefüllt wird und in $ct4 kein \r\n gefunden wird. Denn dann hat das Array nur ein Element (0) und auf 1 kann nicht zugegriffen werden, da es nicht existiert.

Die Meldung „Notice: Uninitialized string offset: 6 in C:\xampp\htdocs\kod.php on line 102“ tritt auf, wenn $i zu groß ist, also auf ein Element zugegriffen werden soll, dass es an dieser Stelle nicht gibt. Kurz: Der Zähler läuft zu weit.

Sollten noch weitere Fragen bestehen oder meine Antwort nicht zufriedenstellend sein: Einfach schreiben.

Gruß
-pinki-

Hallo Ascawath,
dieser Fehler tritt auf wenn du eine leere Variable als array verwenden willst. Also z.B. $ct4[3] ansprechen willst und $ct gar kein Array ist oder zumindest nicht genug Werte hat.

Danke für deine schnelle antwort,
und wie kann ich das verhindern?

danke für deine schnelle Antwort, ich werde sie mir zu Herzen nehmen.Danke

Hallo Ascawath,
dieser Fehler tritt auf wenn du eine leere Variable als array
verwenden willst. Also z.B. $ct4[3] ansprechen willst und $ct
gar kein Array ist oder zumindest nicht genug Werte hat.

Hallo!

Gib doch mal bitte zusätzlich die Zeilennummern in dem Code-Ausschnitt an, damit man die Fehlermeldung besser zuordnen kann.

Wie es aussieht scheint es ein Problem bei den Arrays zu geben:

$ct0 = $ct4[0];
$ct1 = $ct4[1];

danke für deine schnelle antwort, und wie kann ich das beheben

danke für deine schnelle antwort, ich habe jetzt vorher überprüft, ob die leer sind, und dann kommt leider immernoch eine Fhelermeldung

Hallo!

Gib doch mal bitte zusätzlich die Zeilennummern in dem
Code-Ausschnitt an, damit man die Fehlermeldung besser
zuordnen kann.

Wie es aussieht scheint es ein Problem bei den Arrays zu
geben:

$ct0 = $ct4[0];
$ct1 = $ct4[1];

Hallo,

danke für deine Frage.
Leider habe ich die Anfrage lange nicht gesehen.
Obwohl ich denke, dass du jetzt wahrscheinlich nicht mehr an einer Antwort interessiert bist, werde ich dir trotzdem einen Hinweis geben.

Der beschriebene Fehler (Uninitialized string offset) tritt im Allgemeinen dann auf, wenn versucht wird eine Array-Funktion oder Methode auf einen String auszuführen.
Beispiel ist, wenn du $array[0] ausführst, obwohl $array ein String ist.

Falls du noch fragen hasst kannst du dich gerne melden.