Ankündigung

Einklappen
Keine Ankündigung bisher.

Links mit preg_replace ändern

Einklappen

Neue Werbung 2019

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

  • Links mit preg_replace ändern

    Code:
    http://inreb.info/readout.php?path=forumdisplay.php?f=185
    So sieht meine Adresse bzw die Links aus welche erzeugt werden (Forum wird via fsockopen in meine Seite ausgegeben und so), lider wird aber das ?s=[hash] dazugerneriert, welches die Links aber unbrauchbar macht... Das Ergebnis soll letztendlich
    Code:
    http://inreb.info/readout.php?path=forumdisplay.php?f=185
    sein.

    Da ich mit den regulären Ausdrücken genau gar nicht bewandert bin, benötige ich bitte eure Hife wie das preg_replace ausschauen muss

    lg,
    zexion

  • #2
    Es sind doch beide Links genau gleich, oder hab ich jetzt einen Sehfehler?

    Kommentar


    • #3
      Zitat von Crypt Beitrag anzeigen
      Es sind doch beide Links genau gleich, oder hab ich jetzt einen Sehfehler?
      Right (:
      ACHTUNG!!! SIGNATUR!!!
      PHP-Code:
      var_dump($gehirn); exit; 
      0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

      Kommentar


      • #4
        Ich glaube vBulletin will mich veräppeln

        Das löscht einfach meine Links ...

        Der Link der generiert wird sieht folgendermaßen aus:
        Code:
        http://inreb.info/readout.php?path=forumdisplay.php?s=[irgendein hash der nicht hier her gehört]&f=[fid]
        Er soll aber so aussehen:
        Code:
        http://inreb.info/readout.php?path=forumdisplay.php?f=[fid]
        Sorry wenn euch das Forum in die Irre geführt hat ;D

        Kommentar


        • #5
          Es gibt bestimmte Zeichen bei denen Verschluckt sich das Board, vor allem wenn es so um französische Accents! Hast du solche Zeichen im Link?

          Kommentar


          • #6
            Nein, der Link sieht folgendermaßen aus:
            Code:
            http://domain.endung/datei.endung?path=forumdisplay.php?s=[hash der nicht hergehört, sieht wie md5 aus]&f=[foren-id]
            Das ?s=[hash] wird durch das auslesen mit fsockopen() irgendwie dazugeneriert und das will ich wieder weghaben, sonst funktionieren die Links nie :/

            Kommentar


            • #7
              Irgendwie sieht das aus als wenn du versuchen würdest ein Forum in irgend eine andere Datei zu integrieren? Ansonsten nutz Regex um sowas herauszufiltern.

              Kommentar


              • #8
                Ja, sieht danach aus, wird eine mobile Version eines Forums.

                Und genau das Regex ist ja mein Problem. Ich bring den regulären Ausdruck nicht zusammen dass mir z.B.
                Code:
                forumdisplay.php?s=[hier der hash der verschluckt wird]&f=25
                zu
                Code:
                forumdisplay.php?f=25
                wird ...

                Kommentar


                • #9
                  Also wenn der Parameter immer s ist, kannst du dich ja an den Zeichen orientieren:

                  forumdisplay.php?s=[hier der hash der verschluckt wird]&f=25

                  So als kleiner Ansatz.
                  LG Sonic

                  Kommentar


                  • #10
                    Hab ich ja, das Problem ist halt dass mir die regulären Ausdrücke Probleme bereiten xD
                    Mein Ansatz ist folgender:
                    PHP-Code:
                    $line preg_replace('/?s=(.*)&/''?'$line); 
                    Nur gibt mir das als Fehler folgendes zurück:
                    Code:
                    Warning: preg_replace() [function.preg-replace]: Compilation failed: nothing to repeat at offset 0 in

                    Kommentar


                    • #11
                      Der Fehler kommt daher, dass du am Anfang deines Regex ein Fragezeichen hast. Das hat aber eine besondere Bedeutung bei Regex. Das bedeutet nämlich, dass das vorhergehende Zeichen/Ausdruck ein oder null mal vorkommen darf. Wenn du das Fragezeichen ansich meinst, musst du das mit nem \ davor maskieren.

                      Lies dich doch mal in Regex ein.
                      Hier zum Beispiel (aber das sind nur die grundlegendsten Grundlagen):
                      Regulärer Ausdruck – Wikipedia

                      P.S.: Du könntest mit deinem Ausdruck übrigens auch Probleme bekommen, wenn du zwischen den Parametern s und f noch mehr hast. Die würden nämlich mitverschwinden, weil dein .* gierig ist. Was das bedeutet steht auch in dem Artikel.

                      Kommentar


                      • #12
                        Hallo, danke für die Hilfe, jetzt funktionierts schon halbwegs, aber nur wenn ich s und f als Parameter habe und s wegmache... Sobald ich s, f und page habe funktioniert es mal wieder nicht mehr

                        Aktuell sieht mein preg_replace so aus:
                        PHP-Code:
                        $line preg_replace('/\?s=([A-Za-z0-9]{1})&/''?'$line); 
                        Über Tipps und Lösungen für z.B. unendlich viele Paramete wäre ich froh ;D

                        lg,
                        zexion

                        Kommentar


                        • #13
                          Warum willst Du die Session denn eigentlich entfernen?
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar


                          • #14
                            Weil dadurch die Links nicht mehr funktionieren.
                            Bitte frag mich nicht wieso, aber es wird zwar auch &t=[thread-id] übergeben, aber das Forum arbeitet scheinbar nur mit ?t=[thread-id] und nicht auch noch mit ?s=[sid]&t=[thread-id] ...

                            Könnte es daran liegen dass das Forum eigentlich durch fsockopen ausgelesen wird und dieses dann nur mit leicht veränderten URLs ausgegeben wird?

                            Kommentar


                            • #15
                              Zitat von Zexion Beitrag anzeigen
                              Aktuell sieht mein preg_replace so aus:
                              PHP-Code:
                              $line preg_replace('/\?s=([A-Za-z0-9]{1})&/''?'$line); 
                              Wie bist du denn jetzt zu dieser Version gekommen?
                              Das {1} bedeutet, dass nach dem s= nur ein Zeichen kommen darf. Ist der Hash nicht länger als ein Zeichen?!
                              Und wieso &? In dem Link ist das & doch wahrscheinlich ein & und kein &

                              Kannst ja mal /\?s=([A-Za-z0-9]+)/ versuchen.
                              Ich schieß zwar hier ins Blaue, weil ich deinen Code nicht kenne, aber theoretisch müsste das gehen.

                              Kommentar

                              Lädt...
                              X