Wieder mal regular expressions

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

  • Wieder mal regular expressions

    Hallo zusammen,

    ich habe ein problemchen mit Regular Expressions.

    Ausgangslage: Lade ein HTML per File-Upload und möchte dabei direkt die <a href> Tags so umwandeln das die vorhandene URL per GET übergeben wird.

    Vorher: http://www.google.com
    Nachher: http://www.domain.com?<a href="http:...google.com</a>

    ich habe mal ein bisschen mit preg_replace herumgespielt aber leider kein entsprechendes Ergebnis erreicht.

    PHP-Code:
     $ersetzt preg_replace('!(http:\/\/)(.*)(\")!e'
    "'$newUrl?page='.base64_encode('$1$2').'$3'"$string); 
    Vielen Dank für eure Unterstütztung

  • #2
    ich habe mal ein bisschen mit preg_replace herumgespielt aber leider kein entsprechendes Ergebnis erreicht.
    Wäre http://regexp-evaluator.de/evaluator...2bb6/#ergebnis ein entsprechendes Ergebnis für Dich ?

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Danke für deine Antwort,

      ist ein guter Anfang. Da ich die URL noch kodieren will, brauche ich aber nur die URL.

      PHP-Code:
        $result preg_replace('=(http:\/\/[^\s]*)"=e'"'page='.base64_encode('$1')"$subject); 
      Sorry, hatte die Klammern falsch gesetzt.

      Trotzdem, weiss jemand warum dieses Script das lezte Anführungszeichen abschneidet.

      PHP-Code:
      Von: <a href="http:\/\/www.google.ch">Text</a>
      Nach: <a href="http:\/\/www.google.ch>Text</a> 
      Zuletzt geändert von aeternitas103; 14.08.2007, 19:32.

      Kommentar


      • #4
        Trotzdem, weiss jemand warum dieses Script das lezte Anführungszeichen abschneidet.
        ja, weil du das Anführungszechen außerhalb der Klammer positioniert hast.

        Kommentar


        • #5
          Das ist ja eigentlich bewusst so, weil ich ja das Anführungszeichen nicht codieren will. Habe jetzt aber verstanden Warum!

          noch eine letzte Frage zum Fragezeichen:
          wenn ich ein ?-Zeichen mache, schreibt er /?. Kann ich das irgendwie umgehen?

          danke für eure mühen

          Kommentar


          • #6
            wer ist er?

            Kommentar


            • #7
              Nennen wir Ihn: "Hypertext Preprocessor"

              Kommentar


              • #8
                meinter tut's nicht.

                Kommentar


                • #9
                  Meiner auch nicht, aber wenn ich aufs stille Örtchen gehe, mache ich auch keine Fragezeichen.

                  Soll heißen: Ich versteh immer noch nicht, was du mir sagen willst!

                  Kommentar


                  • #10
                    ich schreibe: newUrl?page=
                    er macht: newUrl/?page=

                    Warum? Ich will das doch nicht

                    Kommentar


                    • #11
                      Wo schreibst du das?

                      Zeig mal entsprechenden Quellcode

                      Kommentar


                      • #12
                        PHP-Code:
                        $subject '<a href="http://www.google.ch">Text</a>';

                        $result preg_replace('=(http:\/\/[^\s]*)"=e'"'.ch?page='.base64_encode('$1').'\"'"$subject); 

                        Kommentar


                        • #13
                          <a href=".ch?page=aHR0cDovL3d3dy5nb29nbGUuY2g=">Text</a>

                          also meiner macht das nicht?

                          Kommentar


                          • #14
                            Lade ein HTML per File-Upload und möchte dabei direkt die <a href> Tags so umwandeln das die vorhandene URL per GET übergeben wird.
                            wofür?

                            www.das-dass.de

                            Kommentar


                            • #15
                              stimmt, mit dieser gekürzten Version gehts, ich mache aber eigentlich folgendes

                              PHP-Code:
                                  $result preg_replace('=(http:\/\/[\\^s]*)"=e'"'http://www.google.com?page='.base64_encode('$1').'\"'"$subject); 
                              dann kommt wieder dieser /

                              muss mit dem HTTP zusammenhängen
                              Zuletzt geändert von aeternitas103; 14.08.2007, 21:58.

                              Kommentar

                              Lädt...
                              X