Feedback-Bereich Probleme mit der Zeichenlängenzählung eines einzelnen Wortes
Ich möchte in dem Feedback-Bereich auf meiner Seite jedes einzelne Wort auf seine länge überprüfen und bei überschreitung einer festgesetzten länge eine Fehlermeldung ausgeben. So wie ich das gemacht habe, geht das aber nicht.
Guten Tag,
Mit folgender Schleife überprüfe ich im Feedback-Bereich meiner Seite (in der Datei die in dei Datenbank schreibt), ob ein einzelnes Wort länger als 30 Zeichen ist:
Aber leider geht das nicht so richtig. Es wird schon EDIT: wenn ein Wort kürzer als 30 Zeichen ist eine Fehlermeldung ausgegeben. Ich solle noch erwähnen das der oben Aufgeführte Code sich im "Kern" von vielen weiteren überprüfungsschleifen befindet, die aber alle korrekt arbeiten und keine Fehler enthalten. Die Variable "$insert" wird übrigens später benötigt, um zu überprüfen ob alles in Ordnung war, und das Posting gespeichert werden soll.
Was ist falsch?
DeeDee0815
Guten Tag,
Mit folgender Schleife überprüfe ich im Feedback-Bereich meiner Seite (in der Datei die in dei Datenbank schreibt), ob ein einzelnes Wort länger als 30 Zeichen ist:
Aber leider geht das nicht so richtig. Es wird schon EDIT: wenn ein Wort kürzer als 30 Zeichen ist eine Fehlermeldung ausgegeben. Ich solle noch erwähnen das der oben Aufgeführte Code sich im "Kern" von vielen weiteren überprüfungsschleifen befindet, die aber alle korrekt arbeiten und keine Fehler enthalten. Die Variable "$insert" wird übrigens später benötigt, um zu überprüfen ob alles in Ordnung war, und das Posting gespeichert werden soll.
Was ist falsch?
DeeDee0815
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 25202
Url: https://administrator.de/contentid/25202
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
7 Kommentare
Neuester Kommentar
@ DeeDee0815
Hi,
auf den ersten Blick arbeitet dein Script korrekt, denn du setzt eine Variable
auf False, sobald ein Wort "Länge > 30" gefunden wurde. Dann darf kein Einfügen
erfolgen.
Deinem Schrieb:
"...Es wird schon wenn EIN Wort länger als 30 Zeichen ist eine Fehlermeldung ausgegeben...."
entnehme ich, dass du dem Besucher "alle" Worte zeigen willst, die deine Bedingung nicht
erfüllen?
Dann füge diese Worte in deiner Prüf-For-Schleife in ein Array ein:
wenn Länge > 30 $array[i]=$words[i]
Wenn $word_ok dann false ist, kannst du dem Besucher dann in einer For-Schleife
die Worte auflisten.
Wenn die Betonung tatsächlich auf "...wenn EIN Wort länger als 30 Zeichen ist..." liegt,
dann weise $word_ok nicht false/true zu, sondern zähle die Variable einfach hoch und frage ab,
ob dieser Wert über einem definierten Wert liegt liegt.
Wenn $word_ok > definierter Wert , dann Fehler.
Wenn meine Interpretation falsch war, dann versuchen wir's nochmal.
Gruß
Günni
Hi,
auf den ersten Blick arbeitet dein Script korrekt, denn du setzt eine Variable
auf False, sobald ein Wort "Länge > 30" gefunden wurde. Dann darf kein Einfügen
erfolgen.
Deinem Schrieb:
"...Es wird schon wenn EIN Wort länger als 30 Zeichen ist eine Fehlermeldung ausgegeben...."
entnehme ich, dass du dem Besucher "alle" Worte zeigen willst, die deine Bedingung nicht
erfüllen?
Dann füge diese Worte in deiner Prüf-For-Schleife in ein Array ein:
wenn Länge > 30 $array[i]=$words[i]
Wenn $word_ok dann false ist, kannst du dem Besucher dann in einer For-Schleife
die Worte auflisten.
Wenn die Betonung tatsächlich auf "...wenn EIN Wort länger als 30 Zeichen ist..." liegt,
dann weise $word_ok nicht false/true zu, sondern zähle die Variable einfach hoch und frage ab,
ob dieser Wert über einem definierten Wert liegt liegt.
Wenn $word_ok > definierter Wert , dann Fehler.
Wenn meine Interpretation falsch war, dann versuchen wir's nochmal.
Gruß
Günni
Hallo,
wahrscheinlich hast Du bereits eine Loesung gefunden, aber
mit Regulaeren Ausdruecken geht es um einiges einfacher:
mehr zu RegExp:
http://www.php-resource.de/tutorials/read/10/1/
gruss
wahrscheinlich hast Du bereits eine Loesung gefunden, aber
mit Regulaeren Ausdruecken geht es um einiges einfacher:
$maxChars = 8;
$pat = '/\s?(\w{'.$maxChars.'}?\w+)\s?/ism';
$text = "Kenden Ehen Ach Scheiche, Tassen als Carlo verchromtes Akt dm aufzählt. Diwan Andy lerne malo heilerem, Anm Bus wirklic.";
if(preg_match($pat, $text, $match)) {
echo "Achtung das Wort '".$match[1]."' ist zulang!";
}
mehr zu RegExp:
http://www.php-resource.de/tutorials/read/10/1/
gruss