Zitat:
Zitat von jhaustein
wenn ich das rausnehme, dann bekomme ich diesen text
|
Ich meinte schon htmlspecialchars (beziehungsweise eine „kodierende“ Funktion) und nicht htmlspecialchars_decode (beziehungsweise eine „dekodierende“ Funktion).
Ursprünglich hast du halt einen String wie:
Code:
ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen
65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 3c 42 52 3e 3c 42
52 3e 49 6d 20 61 73 69 61 74 69 73 63 68 65 6e
(Ich setze mal die Bytes immer dazu, damit es wirklich eindeutig ist.)
Das wird dann kodiert…
PHP-Code:
$t = htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
Code:
ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen
65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 26 6c 74 3b 42 52
26 67 74 3b 26 6c 74 3b 42 52 26 67 74 3b 49 6d 20 61 73 69
61 74 69 73 63 68 65 6e
…und noch mal kodiert.
PHP-Code:
$u = htmlspecialchars($t, ENT_QUOTES, 'UTF-8');
Code:
ein einzigartiges Urlaubserlebnis.&lt;BR&gt;&lt;BR&gt;Im asiatischen
65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 26 61 6d 70 3b 6c
74 3b 42 52 26 61 6d 70 3b 67 74 3b 26 61 6d 70 3b 6c 74 3b
42 52 26 61 6d 70 3b 67 74 3b 49 6d 20 61 73 69 61 74 69 73
63 68 65 6e
Wenn du es dann einmal wieder dekodierst…
PHP-Code:
$v = htmlspecialchars_decode($u, ENT_QUOTES);
…, bist du wieder hier:
Code:
ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen
65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 26 6c 74 3b 42 52
26 67 74 3b 26 6c 74 3b 42 52 26 67 74 3b 49 6d 20 61 73 69
61 74 69 73 63 68 65 6e
Und das wird im Browser wegen der kodierten Winkelklammern so
dargestellt:
Code:
ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen
Du willst aber tatsächlich HTML-Code in deine Seite einfügen. Das heißt, du musst noch mal dekodieren.
PHP-Code:
$w = htmlspecialchars_decode($v, ENT_QUOTES);
Code:
ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen
65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 3c 42 52 3e 3c 42
52 3e 49 6d 20 61 73 69 61 74 69 73 63 68 65 6e
Und damit bist du wieder beim ursprünglichen String angelangt.
Also: Eine schlüssige Interpretation hier ist, dass du für deinen Anwendungsfall deine Daten zweimal zu oft kodierst.