Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Stringproblem

  1. #1
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Frage Stringproblem

    Ich habe ein Problem mit einem String (o'donnell), der über ein Formular (variable) reinkommt und z.B. von \Input::get verarbeitet wird:
    PHP-Code:
    $string1 = \Input::get('variable');
    $string2 "o'donnell"// im PHP-Skript (UTF8) 
    Das Problem: beide Strings sind unterschiedlich! Ich habe beide Strings durch eine Funktion geschickt:
    PHP-Code:
    function Bytes($str)
    {
        for ( 
    $pos=0$pos strlen($str); $pos ++ ) {
         
    $byte substr($str$pos);
         echo 
    'Byte ' $pos ' von $str hat den Wert ' ord($byte) . '<br>';
        }

    Ergebnis für $string1:
    HTML-Code:
    Byte 0 von $str hat den Wert 111
    Byte 1 von $str hat den Wert 39
    Byte 2 von $str hat den Wert 100
    Byte 3 von $str hat den Wert 111
    Byte 4 von $str hat den Wert 110
    Byte 5 von $str hat den Wert 110
    Byte 6 von $str hat den Wert 101
    Byte 7 von $str hat den Wert 108
    Byte 8 von $str hat den Wert 108
    Ergebnis für $string2:
    HTML-Code:
    Byte 0 von $str hat den Wert 111
    Byte 1 von $str hat den Wert 38
    Byte 2 von $str hat den Wert 35
    Byte 3 von $str hat den Wert 51
    Byte 4 von $str hat den Wert 57
    Byte 5 von $str hat den Wert 59
    Byte 6 von $str hat den Wert 100
    Byte 7 von $str hat den Wert 111
    Byte 8 von $str hat den Wert 110
    Byte 9 von $str hat den Wert 110
    Byte 10 von $str hat den Wert 101
    Byte 11 von $str hat den Wert 108
    Byte 12 von $str hat den Wert 108
    D.h. aus dem Hochkommata (39) werden 5 Zeichen: 38, 35, 51, 57 und 59. Mit utf8_encode und utf8_decode habe ich es schon versucht. $string2 bleibt immer unverändert. Was könnte ich noch machen, um $string2 an $string1 anzugleichen?
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    Die 5 Zeichen, die Du findest sind wahrscheinlich &# zwei Ziffern und ein ; die das Entity für den Apostroph darstellen, den Contao wg. Inputencoding erzeugt. In Contaos StringUtils sollte es Hilfsfunkionen geben, um das wieder rückgängig zu machen.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard

    Danke. In die Richtung habe ich auch schon gedacht.
    PHP-Code:
    $string2 html_entity_decode($string2); // Führt nicht zum Erfolg, es wird nichts dekodiert
    $string2 html_entity_decode($string2ENT_QUOTES ENT_XML1'UTF-8'); // Führt zum Erfolg 
    Damit habe ich jetzt endlich eine Lösung.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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