• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Sonderzeichen entfernen mit preg_replace

Tomm

Mitglied
Hallo,

über ein Formular wird ein Text gepostet.
Es sollen alle Zeichen ausser Zahlen,Buchstaben und bestimmte Zeichen entfernt werden.
Funktioniert auch einwandfrei,ich möchte allerdings noch Anführungszeichen zulassen

Ich hab schon alles probiert mit escapen \" ,aber es funktioniert leider nicht
PHP:
$string=preg_replace("/[^ .,:a-zA-ZäüöÄÜÖß0-9-\n\r\/]/","",$_POST["string"]);
 
jetzt hab ich glaub ich den Fehler gefunden
Wenn ich das über ein INPUT-Feld ausgebe
dann stehen da doppelte Anführungszeichen,und er zeigt dann gar nichts an

HTML:
<input type="text" value="<?=$string;?>">

im Quelltext steht dann

value=""test""
 
Ausgaben immer durch eine Escape-Funktion wie htmlspecialchars schicken.

Edit: Es sei denn, die Ausgabe soll HTML-Code generieren, natürlich.

PHP:
<?php

function escape($s, $quoteStyle = ENT_QUOTES, $charset = 'UTF-8')
{
    return htmlspecialchars($s, $quoteStyle, $charset);
}

echo escape('"Dies ist ein <Test>"');

// &quot;Dies ist ein &lt;Test&gt;&quot;
 
Zuletzt bearbeitet:
Zurück
Oben