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, 4856 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 ..
Ähnliche Inhalte
Windows Server
Yoursecurecloud.de Probleme mit Pfaden (6)

Frage von WPFORGE zum Thema Windows Server ...

Mac OS X
Probleme mit Freigegebener MAC Festplatte

Frage von mark16 zum Thema Mac OS X ...

Server-Hardware
HP Proliant ML30 + HPE H240 Probleme (7)

Frage von Sauropode zum Thema Server-Hardware ...

Outlook & Mail
Outlook 2016 Mails verschwinden - Probleme mit mehreren Postfächern? (6)

Frage von hannsgmaulwurf zum Thema Outlook & Mail ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(12)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...