RegExp von Hinten?

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

  • RegExp von Hinten?

    Hallo Leute,

    ich habe folgenden Code mit regExp:
    PHP-Code:
    $str 'site/lib/shelf/book-content.html';

    $res preg_replace("|(\\w*)/?(\\w*)/?(\\w*)/?(\\w*)-?(\\w*)\\.html$|""$1,$2,$3,$4,$5"$str)

    $ar =  explode($res);

    /* Ausgabe:
    0 => site
    1 => lib
    2 => shelf
    3 => book
    4 => content
    */ 
    Nun verwende ich aber $str in vielfacher Ausführung, so auch folgendermaßen:
    PHP-Code:
    $str 'shelf/book-content.html';

    $res preg_replace("|(\\w*)/?(\\w*)/?(\\w*)/?(\\w*)-?(\\w*)\\.html$|""$1,$2,$3,$4,$5"$str)

    $ar =  explode($res);

    /* Ausgabe:
    0 => shelf
    1 => book
    2 => 
    3 => 
    4 => content
    */ 
    Ist es aber möglich, dass in der Ausgabe die Variablen "von Hinten" gelesen werden. Dass dieses hier rauskommt:
    PHP-Code:
    /* Ausgabe:
    0 => 
    1 =>
    2 => shelf
    3 => book
    4 => content
    */ 
    Ich hoffe, das klar geworden ist, was ich beabsichtige
    Zuletzt geändert von Maranello-550; 23.06.2005, 09:02.
    arrays sind klasse

  • #2
    klar, leere elemente löschen und die ausgabe per for-schleife von hinten beginnend zählen lassen !

    ist halt nur ein workaround, da meine RegExp-Kenntnisse gegen null tendieren !
    Rock on, Chummers
    DrNorton

    Kommentar


    • #3
      Da ich das Ganze als mod_rewrite in ner .htacces verwenden möchte, müssten es schon RegExp's sein
      arrays sind klasse

      Kommentar


      • #4
        Re: RegExp von Hinten?

        warum drehst du die reihenfolge der backreferences dann nicht einfach um?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          an sich durchaus möglich, sieht aber nicht gut aus
          aber das will ich ja mittels mod_rewrite ein stück weit bezwecken (URL-Design)
          arrays sind klasse

          Kommentar


          • #6
            Original geschrieben von Maranello-550
            an sich durchaus möglich, sieht aber nicht gut aus
            aber das will ich ja mittels mod_rewrite ein stück weit bezwecken (URL-Design)
            keine ahnung, wo von du da redest ...


            was hat denn deine ausgabe irgendeines arrays, ob nun "vorwärts" oder "rückwärts", mit mod_rewrite zu tun?

            könntest du deine frage bitte mal deinem vorhaben anpassen?
            (d.h. u.a., keinen PHP-code posten, der mit dem problem - mod_rewrite - überhaupt nichts zu tun hat.)
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Wie ich vorher schon schrieb:
              Da ich das Ganze als mod_rewrite in ner .htacces verwenden möchte, müssten es schon RegExp's sein
              Den Code verwende ich heir nur, um die RegExp für mod_rewrite zu testen.
              arrays sind klasse

              Kommentar


              • #8
                Original geschrieben von Maranello-550
                Wie ich vorher schon schrieb:
                ja, schön.

                aber was willst du eigentlich erreichen?

                es kann doch nicht so schwer sein, das mal klar und deutlich zu formulieren, oder?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  ich möchte mit mod_rewrite und der darin enthaltenen regexp variablen zuweisen.
                  der link, der von der regexp gematched wird, kann aber verschieden aussehen:
                  - http://www.domain.de/site/lib/shelf/book-content.html
                  - http://www.domain.de/lib/shelf/book-content.html
                  - http://www.domain.de/shelf/book-content.html
                  - http://www.domain.de/book-content.html
                  - http://www.domain.de/content.html

                  die zuweisung bisher sieht so aus:
                  index.php?a=$1&b=$2&c=$3&d=$4&e=$5

                  $a soll immer auf die hier 'site' genannte Gruppe matchen
                  $b soll immer auf die hier 'lib' genannte Gruppe matchen
                  $c soll immer auf die hier 'shelf' genannte Gruppe matchen
                  $d soll immer auf die hier 'book' genannte Gruppe matchen
                  $e soll immer auf die hier 'content' genannte Gruppe matchen

                  dies ist aber nicht gegeben, wenn eine führende gruppe fehlt, denn wenn z.B. 'site' nicht in der url steht, zeigt $a auf 'lib', was es nunmal nicht soll.

                  Gibt es für diese schwierigkeit eine lösung? (ich will es hoffen, sonst muss ich arg was am restlichen skript überdenken )
                  arrays sind klasse

                  Kommentar


                  • #10
                    /(.*)/(.*)/ index.php?$a=$1&b=$2

                    /(.*)/ index.php?$a=&b=$2

                    ...
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar

                    Lädt...
                    X