Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Höchstlänge Zeichen stimmt nicht?

  1. #1
    Contao-Fan
    Registriert seit
    01.11.2013.
    Beiträge
    644

    Standard Höchstlänge Zeichen stimmt nicht?

    Hallo,

    ich vergebe im Elementgenerator eine Höchstlänge von zB 350 Zeichen für eine Textarea. Wenn ich das jedoch prüfe, stimmt die von mir gezählte Anzahl an Zeichen nicht mit dem Elementgenerator überein.
    Ich ermittle die Anzahl der Zeichen mit einem Tool: https://xn--zeichenzhler-ncb.de/de/

    Ich hab einerseits den visuellen Text gezählt, sowie andererseits den Quelltext. Beide male gab es keine Übereinstimmung. Auch wenn ich gering unter der Höchstlänge liege, meldet der Elementgenerator es wäre zu viel.

    Verstehe ich hier etwas falsch?

  2. #2
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Kommt darauf an, was im Text steht.
    Man kann die Zeichen als UTF-8 zählen (enthält auch Multibytezeichen) oder auch als 1 Zeichen = 1 Byte. Das sind ggf. unterschiedliche Befehle in PHP.

  3. #3
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    33

    Standard

    Vor dem Problem stand ich auch. Das Textarea sollte nur 400 Zeichen (incl. Leerzeichen) zulassen. Html war erlaubt - musste alos vor dem Zählen auch weg.
    Gelöst über validateFormField-Hook mit Fehlermeldung beim Überschreiten der maximalen Zeichenzahl.

    hier das generelle Vorgehen mit aufgesplitteten Funktionen ;-)
    Code:
    if ($objWidget->name == 'info-en')
    			    	{
    			    		$textohnehtml = strip_tags(html_entity_decode($objWidget->value)); //html Entitys entfernen
    			    		$textdecode = utf8_decode($textohnehtml); //Umlaute und andere Sonderzeichen in ? umwandeln - zählen sonst als 2 Zeichen
    			    		$textlaenge = strlen($textdecode); //Anzahl Zeichen ermitteln
    			    		if ($textlaenge > 400)
    							{
    								$objWidget->addError(sprintf($GLOBALS['TL_LANG']['ERR']['textsize'], $textlaenge));
    							}  
    			    	
    			    	}

  4. #4
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von frankb Beitrag anzeigen
    $textdecode = utf8_decode($textohnehtml); //Umlaute und andere Sonderzeichen in ? umwandeln - zählen sonst als 2 Zeichen
    Dafür gibt es eigentlich mb_strlen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 2 (Registrierte Benutzer: 0, Gäste: 2)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •