tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
462
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    seltsammithut seltsammithut ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    60
    Versuche gerade meine Link für mod_rewrite aufzupolieren. Natürlich müssen da einige Zeichen raus und ersetzt werden. Jetzt meine Frage an euch, macht man das normal so? Oder gibt es da einfachere Lösungen?

    Danke für eure Antworten.

    PHP-Code:
    function urlfix($out)
    {
    $out str_replace(" ","-",$out);
    $out str_replace("'","",$out);
    $out str_replace(".","",$out);
    $out str_replace("!","",$out);
    $out str_replace("&","and",$out);
    $out str_replace("(","",$out);
    $out str_replace(")","",$out);
    $out str_replace("ö","oe",$out);
    $out str_replace("ä","ae",$out);
    $out str_replace("ü","ue",$out);
    return 
    $out;

     

  2. #2
    BadMatt BadMatt ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    105
    Da gibts doch noch viel mehr zeichen :P

    Ich mach das so (bin aber gerne für Verbesserungsvorschläge zu haben):
    - alles kleinmachen (aus A wird a)
    - Alles ersetzten was man halt ersetzten möchte (also z.b. ö zu oe)
    - Mit preg_replace alles andere rausschmeissen
     

  3. #3
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    str_replace() erlaubt bei den ersten beiden Parametern auch Arrays, das dürfte die Sache performanter gestalten, aber ansonsten kann man das durchaus so machen
     

  4. #4
    seltsammithut seltsammithut ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    60
    Danke für eure Beiträge!

    Hab das jetzt wie Sven vorgeschlagen hat gelöst.

    PHP-Code:
    function urlfix($in)
    {
    $original_url = array(' ''\'''.''!''/''&''('')''ö''Ö''ä''Ä''ü''Ü');
    $manipuliert_url   = array('-''''''''-''and''''''oe''Oe''ae''Ae''ue''Ue');
    $out  str_replace($original_url$manipuliert_url$in);
    return 
    $out;

    An sich genügt mir das schon. Mehr Zeichen brauche ich gar nicht und funktioniert. Danke euch.
     

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Sofern du nicht sicher sein kannst, dass andere unerwünschte Zeichen dort nicht vorkommen werden, solltest du noch BadMatts Vorschlag aufgreifen:
    alles andere rausschmeissen
     

  6. #6
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Arbeite hier lieber mit einem regulären Ausdruck, der alle außer den erlaubten Zeichen ersetzt, beispielsweise:
    PHP-Code:
    trim(preg_replace('/-+/''-'preg_replace('/[^a-zA-Z0-9\-]/''-'$string)), '-'
     
    Markus Wulftange

  7. #7
    seltsammithut seltsammithut ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    60
    Danke noch für eure Antworten.

    Deines würde auch funktionieren Gumbo, jedoch wenn zb. ein ö vorkommt, löscht er es mir komplett raus. Lieber wäre es mir das er ein oe daraus macht. Kann man das in deinen Codeblock noch irgendwie unterbringen? Oder geht das dann nur mit meinen Code?

    Danke!
     

  8. #8
    kev kev ist offline Grünschnabel
    Registriert seit
    Jan 2004
    Beiträge
    2
    Bau doch einfach seinen Ausdruck dazwischen?

    Also erst alles bekannte ersetzen, danach alles ersetzen was nicht geplant ist.
     

  9. #9
    seltsammithut seltsammithut ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    60
    Hast natürlich recht! Auf das hätte ich auch gleich kommen können. Wie auch immer, jetzt ist es perfekt! Danke!
     

  10. #10
    BadMatt BadMatt ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    105
    Hab ich das nicht auch schon vorgeschlagen? xP
     

  11. #11
    Avatar von Felix Kunsmann
    Felix Kunsmann Felix Kunsmann ist offline Kurz weg …
    Registriert seit
    Oct 2006
    Ort
    Pirmasens (Südwestpfalz)
    Beiträge
    114
    PHP-Code:
    <?php
        
    function makeStringToURL($string)
        {
            
    $string strtolower($string);
            
            
    $r = array(
                    
    "ß" => "ss",
                    
    "ä" => "ae",
                    
    "ö" => "oe",
                    
    "ü" => "ue"
                 
    );
            foreach (
    $r as $replace => $search) {
                
    $string str_replace($replace$search$string);
            }
            
            
    $string  preg_replace('/[\(\)\[\]\{\}]/'''$string);
            
    $string  preg_replace('/[^a-z0-9-]/''-'$string);
            
    $string  preg_replace('/-{2,}/''-'$string);
            
            if (
    substr($string01) == "-") {
                
    $string substr($string1);
            }
            
            if (
    substr($string, -1) == "-") {
                
    $string substr($string0, -1);
            }
            
            return 
    $string;
        }
    ?>
    So mach ich das im Allgemeinen. Erstmal alles lowercase, dann Umlaute und Klammern entfernen, anschließend alles Unerlaubte filtern. Zum Schluss werden noch überzähllige - ausgefiltert.
     
    Gruß,
    Felix 'kunsi' Kunsmann
    --------------------------------------------------------------------------------
    Dem Kunsi sein Blog (Also … äh … meins halt :) | Galerie
    Jabber: kunsi@jabber.ccc.de

Ähnliche Themen

  1. Mod_Rewrite Problem adresse.de/activate/code
    Von Kalma im Forum Hosting & Webserver
    Antworten: 8
    Letzter Beitrag: 23.10.09, 21:25
  2. Scheitelpunkte manipulieren
    Von Aussi008 im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 11.06.08, 08:10
  3. URL manipulieren
    Von Sasser im Forum PHP
    Antworten: 9
    Letzter Beitrag: 25.03.08, 16:39
  4. Antworten: 3
    Letzter Beitrag: 22.04.03, 13:10
  5. I-Explorer manipulieren
    Von Gabi im Forum Microsoft Windows
    Antworten: 7
    Letzter Beitrag: 18.11.02, 22:11

Stichworte