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?
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          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