Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Feedback-Bereich Probleme mit der Zeichenlängenzählung eines einzelnen Wortes

Frage Entwicklung PHP

Mitglied: DeeDee0815

DeeDee0815 (Level 1) - Jetzt verbinden

04.02.2006, aktualisiert 10.02.2006, 4838 Aufrufe, 7 Kommentare

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:

7db58b8a18928556036d6ae44af1e138-code_wordcount - Klicke auf das Bild, um es zu vergrößern

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
Mitglied: Dani
04.02.2006 um 15:15 Uhr
Könntest du bitte genauer erläutern um was für ein Feld es geht. Für welches Feld ist die Schleife zuständig??
Bitte warten ..
Mitglied: DeeDee0815
04.02.2006 um 15:17 Uhr
Ja, dass hätte ich erwähnen sollen: Es geht um das Textfeld, in das man seinen Kommentar eintragen soll. Ein einzelnes Wort, darf nicht länger als 30 Zeichen sein.

Gruß
DeeDee0815
Bitte warten ..
Mitglied: Dani
04.02.2006 um 15:29 Uhr
Aber leider geht das nicht so richtig. Es
wird schon wenn ein Wort länger als 30
Zeichen ist eine Fehlermeldung ausgegeben.

Aha. Was genau geht nicht?? Der Satz oben ist ein bisschen wieder sprüchig.
Bitte warten ..
Mitglied: Guenni
04.02.2006 um 19:18 Uhr
@ 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
Bitte warten ..
Mitglied: DeeDee0815
07.02.2006 um 16:42 Uhr
Entschuldigung, ich habe mich verschrieben: Es muss heißen: "schon bei weniger als 30 Zeichen". Das ist nämlich das Problem.

Inzwischen habe ich herausgefunden, dass es daran liegt, dass wenn man einen absatz macht, dieser einfach als Zeichen gewertet wird. Er ist also kein trenner zwischen zwei Worten. Dieses Problem habe ich folgendermaßen gelöst: Alle "\n" werden in ein Leerzeichen umgewandelt: Das Problem: Macht jemand zwei absätze sind es auch zwei leerzeichen. Das Zweite wird zur Zeichläge addiert: Folglich hat der Nutzer nur noch 29 Zeichen zu verfügung.

Um die Frage zu beantworten, ich muss micht wirklich für meine ungenauen und falschen Formulierungen entschuldigen, ich will nicht jeden einzelnen Fehler auflisten.

Jetzt muss ich nur noch wissen, wie man doppelte oder drei oder zehnfache leerzeichen in eines umwandelt.

Gruß
DeeDee0815
Bitte warten ..
Mitglied: nk
09.02.2006 um 12:03 Uhr
Hallo,

wahrscheinlich hast Du bereits eine Loesung gefunden, aber
mit Regulaeren Ausdruecken geht es um einiges einfacher:
01.
$maxChars = 8; 
02.
$pat = '/\s?(\w{'.$maxChars.'}?\w+)\s?/ism'; 
03.
$text = "Kenden Ehen Ach Scheiche, Tassen als Carlo verchromtes Akt dm aufzählt. Diwan Andy lerne malo heilerem, Anm Bus wirklic."; 
04.
if(preg_match($pat, $text, $match)) { 
05.
	echo "Achtung das Wort '".$match[1]."' ist zulang!"; 
06.
}

mehr zu RegExp:
http://www.php-resource.de/tutorials/read/10/1/


gruss
Bitte warten ..
Mitglied: DeeDee0815
10.02.2006 um 20:38 Uhr
Vielen Dank für deine Hilfe. Danke für den Code!


Gruß
DeeDee0815
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Windows 10
gelöst VPN Verbindung Probleme (6)

Frage von Yeter2 zum Thema Windows 10 ...

Windows 10
Windows 10 Start-Probleme - Hilfe (9)

Frage von clragon zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...