Ich habe ein Problem mit einem String (o'donnell), der über ein Formular (variable) reinkommt und z.B. von \Input::get verarbeitet wird:
Das Problem: beide Strings sind unterschiedlich! Ich habe beide Strings durch eine Funktion geschickt:PHP-Code:$string1 = \Input::get('variable');
$string2 = "o'donnell"; // im PHP-Skript (UTF8)
Ergebnis für $string1: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 $string2: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
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?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

Zitieren