Problem mit preg_replace

PhoenixDH

Erfahrenes Mitglied
Hallo zusammen,

ich benötige ein Script das mir ein paar Sonderzeichen ersetzt.

Ich habe hier ein Script, da kommt jedoch ein Fehler:
Warning: preg_replace() [function.preg-replace]: No ending delimiter '>' found in /test.php on line 8

Das hier sit der Code:
Code:
<?php

$unhtml_specialchars_replace = array('#&gt;#', '#&lt;#', '#&quot;#', '#&amp;#');
$unhtml_specialchars_match = array('>', '<', '"', '&');

$username = 'A&B';

$username = preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, $username);

echo $username;

?>

Es sollen also die Zeichen ersetzt werden!

Dank euch!
 
PHP:
$unhtml_specialchars_match = array('/>/', '/</', '/"/', '/&/');

Mach dich einfach mal über reguläre Ausdrücke schlau, denn preg_match ist kein einfacher String-Replace

Aber warum verwendest du nicht einfach htmlspecialchars() ?
 
Dank dir!
Wenn ich
$unhtml_specialchars_match = array('/>/', '/</', '/"/', '/&/');
verwende bekomme ich als Ausgabe das hier:

es sollte aber
lauten.

Wenn ich
$username = htmlspecialchars($username);
verwende gibt er mir unverändert den Text aus:

Ich habe mich schon versucht einzulesen, aber wie du schon sagst, es ist schwer am Anfang, ich Blicke noch nicht so durch!

Danke.
 
Die # sind in deinem Code drin als Wert der gesetzt werden soll. Hab keine Ahnung, wrum du ihn dort stehen hast.

htmlspecialchars($username); gibt A&amp;B aus. Habs getestet. Du musst halt den Sourcecode der generierten html-Ausgabe anschauen, weil der Browser zeigt &amp; als & an.
 
Zurück