it-swarm.com.de

PHP Filter mit Preg_replace lassen nur Buchstaben zu

Ich habe ein kleines Problem mit Preg_replace. Ich brauche eine Funktion, die alle Zeichen in nichts konvertiert, außer [A-z][0-9] und einige . ! ?

Ich könnte einen preg_match machen, aber dies nur überprüfen und ich möchte ersetzt werden. Dies, um keine Junk-Zeichen wie .__ zu setzen. <p> und ;[[;[p;[in Beschreibung META TAG.

Das Skript muss also so aussehen:

;")<br>kk23?! => brkk23?!

Jede Hilfe wäre dankbar: D

18
Master345
$string = ';")<br>kk23?!'; 
$new_string = preg_replace("/[^A-Za-z0-9?!]/",'',$string);
echo $new_string;

buchstaben, Zahlen, Leerzeichen,?!

/* 3 choices. Pick one you like! */
$str = preg_replace("/[^A-Za-z0-9?! ]/","",$str);
$str = preg_replace("/[^A-Za-z0-9?!\s]/","",$str);
$str = preg_replace("/[^A-Za-z0-9?![:space:]]/","",$str);
39
dang
 $var=preg_replace('~[^A-Za-z0-9?.!]~','',$var);

Vergessen Sie nicht, dass A-Za-z und A-z nicht identisch sind

6
RiaD

Eine schnelle Lösung wird wie folgt sein:

if (preg_match('/^[\w\.]+$/', $str)) {
    echo 'Str is valid';
} else
    echo 'Str is invalid';

// string enthält nur die Zeichen a bis z, A bis Z, 0 bis 9 und _ (Unterstrich)

\w - matches [a-zA-Z0-9_]+

Ich hoffe es hilft.

2
Aditya P Bhatt

Am einfachsten ist es, etwas Ähnliches zu tun: Fügen Sie einfach die Zeichen hinter dem ! hinzu, und stellen Sie sicher, dass sie bei Bedarf ausgeblendet werden.

$string = "<br>kk23?!";
$string = preg_replace('/[^A-Za-z0-9 \?!]/', '', $string);
1
Ben

Mehr Besuch auf dieser Seite. Ich denke, dass mehr Leute das gleiche Problem bekommen. Der bessere Weg ist, sich selbst auszuprobieren und zu bekommen, was Sie brauchen. Anpassen oder kopieren, fügen Sie diesen PHP ein und probieren Sie es aus:

$sample_input = '&&*9?><<script>}cat-<html>ch(_P.,,mE.:;xc##e*p32t.ion $e){di+-($e->ge69tMesPHP _f0sage()3);}';

$output = ereg_replace("[^..........]", "", $sample_input);        

echo "validate =".$output;

Ändern Sie, indem Sie diese ausfüllen, um das zu erhalten, was Sie möchten:

 $output = ereg_replace("[^.........]", "", $sample_input);

Beispiel: Wenn Sie nur Kleinbuchstaben wünschen, machen Sie folgendes:

$output = ereg_replace("[^a-z]", $sample_input);

kleinbuchstaben mit Leerzeichen:

 $output = ereg_replace("[^a-z ]", $sample_input);

und mehr ....., Dies ist eine einfache Validierungsmethode:

$username = ereg_replace("[^A-Z0-9_]", "", $username);
$fullname = ereg_replace("[^A-Za-z0-9., ]", "", $fullname);
$city     = ereg_replace("[^A-Za-z -]", "", $city);
$phone    = ereg_replace("[^0-9 +()-]", "", $phone);
$state    = ereg_replace("[^A-Za-z -]", "", $state);
$zipcode  = ereg_replace("[^0-9]", "", $zipcode);
$country  = ereg_replace("[^A-Za-z -]", "", $country);
$gender   = ereg_replace("[^mf]", "", $gender);

Versuchen Sie es selbst, hoffe, es wird helfen ...

0
user3706926