Wieder mal regular expressions

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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)

    Comment


    • #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> 
      Last edited by aeternitas103; 14-08-2007, 18:32.

      Comment


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

        Comment


        • #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

          Comment


          • #6
            wer ist er?

            Comment


            • #7
              Nennen wir Ihn: "Hypertext Preprocessor"

              Comment


              • #8
                meinter tut's nicht.

                Comment


                • #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!

                  Comment


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

                    Warum? Ich will das doch nicht

                    Comment


                    • #11
                      Wo schreibst du das?

                      Zeig mal entsprechenden Quellcode

                      Comment


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

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

                        Comment


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

                          also meiner macht das nicht?

                          Comment


                          • #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

                            Comment


                            • #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
                              Last edited by aeternitas103; 14-08-2007, 20:58.

                              Comment

                              Working...
                              X