kostenloser Webspace werbefrei: lima-city


Unterschied zwischen ereg_replace und preg_replace?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    highborn

    highborn hat kostenlosen Webspace.

    hallo,

    was ist denn der unterschied zwischen ereg_replace und preg_replace?

    im mom habe ich meine sicherheit auf diese weise gelöst:

    ereg_replace("[^A-Za-z0-9]", "", $_POST['username'])



    ereg_replace soll es ja bald nicht mehr geben. dadurch das die seite für jemand anderst ist, muss ich das ja abändern.

    ich habe nach preg_replace geschaut?

    wie sieht der code da aus? also irgendwie stehe ich gerade auf dem schlauch denn eigentlich ist das doch die gleiche syntax oder?

    also:
    preg_replace("[^A-Za-z0-9]", "", $_POST['username'])
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Nicht ganz, preg_replace solte so ausehen:
    preg_replace("/[^A-Za-z0-9]/", "", $_POST['username'])


    der Unterschied liegt vorwiegend in der Varbeitung und für dich darin, dass preg_replace eine zu perl kompatible syntax hat.

    siehe dazu auch:
    http://de3.php.net/manual/de/function.preg-replace.php
    http://de3.php.net/manual/de/function.ereg-replace.php

    Wenn du nur prüfen willst, ob die Zeichenkette deinem RegEx entspricht, schaue dir doch mal preg_match() an.
  4. In PCRE (welches in preg_ genutzt wird), sieht dein Regex so aus: `/\W/`. `/` sind die Delimiter, welche den eigentlichen Regex von den Identifiern trennt. `\W` ist äquivalent zu `[^A-Za-z0-9]` (das kannst du natürlich auch benutzen, aber `\W` sollte hier zu bevorzugen sein.
    $str = preg_replace('/\W/', '', $str);
  5. Autor dieses Themas

    highborn

    highborn hat kostenlosen Webspace.

    danke für eure antworten...

    woher weiß ich was /w ist? find dazu nichts.

    soll ich dann alles so abändern?

    preg_replace("/\W/", "", $_POST['username'])


    also er soll alles ausser zahlen und buchstaben mit nix ersetzen...

    Beitrag zuletzt geändert: 4.12.2010 21:28:07 von highborn
  6. highborn schrieb:
    woher weiß ich was /w ist?


    Schaue dir dazu mal die Vordefinierten Zeichenklassen für Reguläre Ausdrücke an. z.B. http://de.wikipedia.org/wiki/Regulärer_Ausdruck#Vordefinierte_Zeichenklassen

    Ja, kannst du so ändern. Wenn das eine Sicherheits überprüfung ist, bietet es sich aber evtl. auch an einfach zu überprüfen ob nur Zeichen vorkommen die erlaubt sind und falls das nicht der fall ist, dieses als Fehler zu behandeln (-> Script abbrechen oder Variable auf NULL setzten und Fehler abfangen).
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!