Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_replace für URLs mit vielen Variablen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • preg_replace für URLs mit vielen Variablen

    Hallo zusammen,

    ich möchte eine Hotelbewertungsmaske in meine Seite einbinden und dazu die Links ein wenig verschönern. Bisher werden sie in folgender Form ausgeliefert:

    /urlaub,anz__mb,kid__9,kontinent__Mittelamerika.htm l
    bzw
    /urlaub,hid__34230,kontinent__Afrika,land__Suedafri ka,region__Suedafrika,ort__Kapstadt,hotel__The+Rit z+Hotel+++Cape+Town+Ritz.html

    Ich möchte diese Links jetzt ein wenig schlanker und einprägsamer gestalten, sprich folgendermaßen aussehen lassen:

    /urlaub-mittelamerika-kid-9.html
    bzw.
    /urlaub-the-ritz-hotel---cape-town-ritz-hid-34230.html

    Als PHP-Noob, der gerade mal ein Affenformular oder eine if-else-Bedingung auf's Blatt bringt, ist das Umschreiben der Links mit preg_replace annähernd unmöglich. Habe zwar ein wenig rumgespielt, aber keine Möglichkeit gefunden.

    Könnt ihr mir bitte ein wenig auf die Sprünge helfen?

    Danke und Gruß vom CaptainLHM

  • #2
    lol in den von dir gekürzten urls ist ja einfach alles i-wie zusammengewürfelt^^ das kannste net mit preg_replace machen^^
    Das sieht für mich eher nach einem Fall für explode aus =D =D
    MfG
    Destruction

    Kommentar


    • #3
      Hört sich gefährlich an
      Und wenn man nur die Sonderzeichen durch Minus ersetzen würde? Wäre das denn möglich?

      Kommentar


      • #4
        Hallo, so würde ich das angehen:

        PHP-Code:
        <?php
        $prettyUrl 
        preg_replace("/[^\d\w]+/""-"$uglyUrl);
        $prettyUrl trim($prettyUrl"-");
        ?>
        Sprich: entferne alle Zeichen, die kein (^) Word (a-z, A-Z, _) oder Digit (0-9) sind durch einen Bindestrich, fasse diese so gierig wie möglich zusammen (+, kein U Modifier), vermeide also ----- Kombinationen. Danach entfernst du - am Anfang und Ende mit trim().

        Davor kannst du noch deutsche Umlaute durch ihr Pendant ersetzen, Koeln waere halt schoener als K-ln.

        Kommentar


        • #5
          Danke, werde ich am Wochenende mal austesten, mal sehen ob ich das für die paar 1000 URLs hinbekomme

          Kommentar


          • #6
            Soderle, habe den Code mal getestet. Würde rein theoretisch auch funzen, wenn ich mir den Content nicht per file_get_contents holen würde. Anscheinend ist mein Problem doch etwas komplexer, denn ich wollte die URLs im Inhalt, den ich mir von einem Partnerprogramm ziehe, ändern. Das funzt so leider nicht

            Kommentar


            • #7
              Welchen Content?

              Kommentar


              • #8
                Na dann hier den Code:
                Code:
                <?php
                $ohgContent='http://www.openholidayguide.net/openholidayguide.php'.
                					  '?kid='.$_GET['kid'].
                					  '&lid='.$_GET['lid'].
                					  '&rid='.$_GET['rid'].
                					  '&oid='.$_GET['oid'].
                					  '&hid='.$_GET['hid'].
                					  '&bid='.$_GET['bid'].
                					  '&anz='.$_GET['anz'].
                					  '&ro='.$_GET['ro'].
                					  '&styp='.$_GET['styp'].
                					  '&srvalue='.$_GET['srvalue'].
                					  '&svalue='.urlencode($_GET['svalue']).
                					  '&pg='.$_GET['pg'].
                					  '&kontinent='.urlencode($_GET['kontinent']).
                					  '&land='.urlencode($_GET['land']).
                					  '&region='.urlencode($_GET['region']).
                					  '&ort='.urlencode($_GET['ort']).
                					  '&hotel='.urlencode($_GET['hotel']).
                					  '&page=urlaub'.
                					  '&pid=****_****'.
                					  '&url=www.**********.de%2Fohg'.
                					  '&typ=anf'.
                					  '&ch='.$_GET['ch'].	                            
                					  '&stravel='.$_GET['stravel'];
                		  echo file_get_contents($ohgContent);
                		  ?>
                Sprich pre PHP wird die URL gebaut und dann via file_get_contents der Inhalt geholt und auf meiner Seite ausgegeben. Die URL sieht dann zum Beispiel so aus:
                /urlaub.php?anz=mb&oid=7636&kontinent=Europa&land=O esterreich&region=Salzburger+Land&ort=Salzburg

                Via vom Programm angebotenen htaccess-Rewrite kann man das dann auf o.g. URL-Format bringen, was mir aber nicht sooo viel weiterhilft. Bin dann eben auf ein paar Seiten gestoßen, die diese Maske ebenso verwenden und wollte mir die links dann auch so zusammen basteln wie z.B.
                Hotelbewertung Salzburg von Hotelbewertung.de

                Kommentar


                • #9
                  Ohje ..

                  Kommentar


                  • #10
                    keiner ne idee?

                    Kommentar


                    • #11
                      Nicht drängeln!

                      Kommentar


                      • #12
                        Ich glaube eher die Leute ham keine Lust ..

                        Kommentar

                        Lädt...
                        X