str_ireplace Problem mit " und \

schiese

Erfahrenes Mitglied
Hi,
ich möchte folgende Zeichen löschen. Also User dürfen diese Zeichen nicht in ihrem Usernamen verwenden. - /\:?<>|" - Habe es so versucht:
PHP:
<?php

$text2 = "/\:?<>|";

$suchen[0] = "";
$suchen[1] = "/";
$suchen[2] = ":";
$suchen[3] = "*";
$suchen[4] = "?";
$suchen[5] = "<";
$suchen[6] = ">";
$suchen[7] = "|";
$suchen[8] = " ";

$ersetzen[0] = "";
$ersetzen[1] = "";
$ersetzen[2] = "";
$ersetzen[3] = "";
$ersetzen[4] = "";
$ersetzen[5] = "";
$ersetzen[6] = "";
$ersetzen[7] = "";
$ersetzen[8] = "_";

$text = str_ireplace( $suchen, $ersetzen, $text2 );

echo $text;

?>
es klapp auch, nur weiß ich nicht, wie ich \ und " entfernen soll.


schiese
 
Gib doch lieber an, welche Zeichen verwendet werden dürfen und weise den Benutz dann darauf hin.
 
Hi,
Sonst kann er alles benutzen. Ich muss nur diese Zeichen löschen, da anschließend ein Bild nach seinem Namen benannt wird und Dateinamen diese Zeichen nicht beinhalten dürfen!

schiese
 
Das heißt, auch Zeichen wie etwa das Rautenzeichen oder jedes andere Sonderzeichen wie Umlaute sind erlaubt?
 
Da hab ich noch gar nicht dran gedacht! Stimmt, die Sonderzeichen

Mit welcher funktion kann ich denn bestimmen, welche Zeichen erlaubt sind?
Gibt es denn etwas für den Fall? [ wie strip_tags(), wo ich die erlaubten HTML- und-PHP-Tags bestimmen kann? ]
[edit]Am besten ist es denn, wenn nur Buchstaben und Zahlen erlaubt sind, oder nicht?[/edit]
schiese
 
Zuletzt bearbeitet:
Gumbo hat gesagt.:
Gib doch lieber an, welche Zeichen verwendet werden dürfen und weise den Benutz dann darauf hin.

Da stimme ich Gumbo zu,
da dies die einfachste Lösung währ.
Somit bräuchtest du nur die wälbahren Ziffern nehmen,
sodass du keine Schwierigkeiten hast und dein Kopf nicht brennt,
außerdem ist der code Kürzer :)

mfg, cille
 
Das geht mit einem regulären Ausdruck ganz einfach, etwa:
PHP:
var_dump( !preg_match('/[^a-z_-]/i', $string) );
 
Habe gerade auch schon nach regulären Ausdrücken geguckt. Bei Wikipedia habe ich den hier gefunden.
Code:
[A-Za-z0-9]

Welche Buchstaben, Ziffern sind denn bei deinem Ausdruck erlaubt @Gumbo?

schiese
 
Die Zeichen A-Z sowie dessen kleingeschriebenen Pendanten und die Zeichen Unterstrich und Bindestrich. Alles andere erzeugt ein „false“.
 
Das ist ja schon mal gut. Wie kriege ich jetzt nur die Zahlen da mit rein? So?
Code:
var_dump( !preg_match('/[^a-z_-0-9]/i', $string) );
schiese
 
Zurück