kostenloser Webspace werbefrei: lima-city


Bestimmte Zeichen ersetzen PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    Hi!

    Ich hab mal eine kleine Frage.
    Und zwar, wie kann ich in einem Text, der in ein Html Form Input Feld eingegeben wurde, bestimmte zeichen ersetzen?

    Beispiel:

    Die Änderung meiner Webseite

    soll werden zu

    die-aenderung-meiner-webseite


    Wie mache ich das?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Das kannst du mit preg_replace bewerkstelligen
  4. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    fitsein schrieb:
    Das kannst du mit preg_replace bewerkstelligen


    Ich hab mir die Funktion eben angesehen. Kannst du mir ein kurzes Beispiel geben?
    Ich habe probiert, mehrere Werte ersetzen zu lassen, es hat aber irgendwie nicht geklappt.

    Edit: Kann man mit preg_replace() auch Großbuchstaben ersetzen zu kleinbuchstaben, sodass der ganze Text klein geschrieben ist?

    Beitrag zuletzt geändert: 24.2.2012 22:54:59 von php-oop
  5. Du musst preg_replace() einfach mit unterschiedlichen Parametern untereinandersetzen und dabei immer den selben String weiterbearbeiten.

    php-oop schrieb:
    Edit: Kann man mit preg_replace() auch Großbuchstaben ersetzen zu kleinbuchstaben, sodass der ganze Text klein geschrieben ist?
    Ja, das geht. Dafür müsstest du aber für jeden Buchstaben eine Zeile schreiben, was bei 26 Buchstaben + 3 Umlauten allerdings ziemlich aufwändig wäre. strtolower() zu nutzen, ist viel einfacher.
  6. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    drafed-map schrieb:
    Du musst preg_replace() einfach mit unterschiedlichen Parametern untereinandersetzen und dabei immer den selben String weiterbearbeiten.

    php-oop schrieb:
    Edit: Kann man mit preg_replace() auch Großbuchstaben ersetzen zu kleinbuchstaben, sodass der ganze Text klein geschrieben ist?
    Ja, das geht. Dafür müsstest du aber für jeden Buchstaben eine Zeile schreiben, was bei 26 Buchstaben + 3 Umlauten allerdings ziemlich aufwändig wäre. strtolower() zu nutzen, ist viel einfacher.


    Danke für die Antwort !

    Ich habe das jetzt so gelöst:

    $umlaute = array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/\s+/"); 
    		$replace = array("ae","oe","ue","Ae","Oe","Ue","ss","-"); 
    		$name = preg_replace($umlaute, $replace, $rezeptname); 
    		$new_name = strtolower($name);


    Gibt es noch andere Zeichen, die man in einem Link zu einem Bild ersetzen sollte?
  7. drafed-map schrieb:
    php-oop schrieb:
    askarian schrieb:
    Ich würde eher &aouml; etc. verwenden->Es sind die HTML Sonderzeichen, bzw. Umlaute.

    http://de.selfhtml.org/html/referenz/zeichen.htm


    Ok, mach ich.
    Danke!
    Davon rate ich dir ab. Ein Moderator wird Askarians Beitrag bald löschen, da er überhaupt keinen Sinn macht.


    Wieso dass???
    Anstatt von ae, ue, oe a, ü, und ö. Mann kann zwar auch irgendwie Iso Type=... machen, aber das zerschießt bei mir das Layout.

    Also ich erkenne darin den Sinn, dass es besser aussieht.

    €: Und Mods schlafen auch mal...: sleep:

    Beitrag zuletzt geändert: 24.2.2012 23:52:42 von askarian
  8. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Vom Einsatz wird deswegen abgeraten, weil die generierte Zeichenkette allem Anschein nach in einer URL verwendet werden soll. URLs mit Sonderzeichen sehen nicht immer schön aus und sind teilweise auch Hinderlich.

    Ich persönlich ersetze für den Zweck die Umlaute, ersetze Leerzeichen und Lösche alle Zeichen welche nicht Alphanumerisch oder Unterstriche sind ;)
  9. php-oop schrieb:
    ... Ich habe das jetzt so gelöst:
    $umlaute = array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/\s+/"); 
    		$replace = array("ae","oe","ue","Ae","Oe","Ue","ss","-"); 
    		$name = preg_replace($umlaute, $replace, $rezeptname); 
    		$new_name = strtolower($name);
    ...
    für genau deine aufgabe würde ich mir das nochmals gut überlegen und mit str_replace(...) arbeiten. als kleine entschedungshilfe (suche nach 'performance preg_replace') paar interessante links:
    Russ Cox, Cambridge
    Implementations and running times
    Comparison of regular expression engines
    Performance Guidelines
    ...
  10. 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!