gondor: Hilfe bei regulären Ausdrücken

Hallo,

wie kann ich mit Hilfe von regulären Ausdrücken (oder auf andere Weise) bestimmte Tags filtern oder abändern.

Links mit einem bestimmten Inhalt:

z.B.

[<a href="eine url">Baum</a>] -> weg
[<a href="eine url">Raum</a>] -> stehen lassen

dann moechte ich die URL bestimmter Links aendern:

z.B.

<a href="anderesforum/nachricht/25663/index.html">Linkname</a>

zu:

<a href="meinforum/forum.html?id=25663">Linkname</a>

Danke fuer Hilfe,
gondor

  1. @@gondor:

    nuqneH

    wie kann ich mit Hilfe von regulären Ausdrücken (oder auf andere Weise) bestimmte Tags filtern oder abändern.

    Was heißt „bestimmte Tags“? Tags? Was haben diese gemeinsam, was unterscheidet sie von denen, die du nicht ändern willst?

    dann moechte ich die URL bestimmter Links aendern:
    z.B.
    <a href="anderesforum/nachricht/25663/index.html">Linkname</a>
    zu:
    <a href="meinforum/forum.html?id=25663">Linkname</a>

    Möchtest du das in PHP tun oder eine <http://de.selfhtml.org/servercgi/server/rewrite.htm@title=serverseitige Weiterleitung>?

    Worin besteht dein Problem, nach "anderesforum/nachricht/" gefolgt von einigen Ziffern (die es zu merken gilt) gefolgt von "/index.html" zu suchen und durch "meinforum/forum.html?id=" + dem Gemerten zu ersetzen?

    Lässt sich dein Problem durch Lektüre von k/π [<http://de.selfhtml.org/perl/sprache/regexpr.htm@title=Reguläre Ausdrücke>] lösen?

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. Hallo Gunnar,

      @@gondor:

      nuqneH

      wie kann ich mit Hilfe von regulären Ausdrücken (oder auf andere Weise) bestimmte Tags filtern oder abändern.

      Was heißt „bestimmte Tags“? Tags? Was haben diese gemeinsam, was unterscheidet sie von denen, die du nicht ändern willst?

      mit Tags meinte ich Webelemente, wie <a>...</a> oder <div>...</div>

      dann moechte ich die URL bestimmter Links aendern:
      z.B.
      <a href="anderesforum/nachricht/25663/index.html">Linkname</a>
      zu:
      <a href="meinforum/forum.html?id=25663">Linkname</a>

      Möchtest du das in PHP tun oder eine <http://de.selfhtml.org/servercgi/server/rewrite.htm@title=serverseitige Weiterleitung>?

      In PHP...

      Leider habe ich viele dieser Links (als String):

      $in="
      ...
      <a href="anderesforum/nachricht/25663/index.html">Linkname</a>
      <a href="anderesforum/nachricht/45233/index.html">Linkname</a>
      <a href="anderesforum/nachricht/18976/index.html">Linkname</a>
      <a href="anderesforum/nachricht/64894/index.html">Linkname</a>
      <a href="anderesforum/nachricht/81247/index.html">Linkname</a>
      ...
      ";

      zu:

      $out="
      ...
      <a href="meinforum/forum.html?id=25663">Linkname</a>
      <a href="meinforum/forum.html?id=45233">Linkname</a>
      <a href="meinforum/forum.html?id=18976">Linkname</a>
      <a href="meinforum/forum.html?id=64894">Linkname</a>
      <a href="meinforum/forum.html?id=81247">Linkname</a>
      ...
      ";

      Worin besteht dein Problem, nach "anderesforum/nachricht/" gefolgt von einigen Ziffern (die es zu merken gilt) gefolgt von "/index.html" zu suchen und durch "meinforum/forum.html?id=" + dem Gemerten zu ersetzen?

      Die Ansätze. Ich wüßte keinen Weg... zumal ich denke, dass das mit einem regulären Ausdruck (über preg_replace) gehen könnte, aber der Ausdruck des $pattern ist mir zu kompliziert.

      Lässt sich dein Problem durch Lektüre von k/π [<http://de.selfhtml.org/perl/sprache/regexpr.htm@title=Reguläre Ausdrücke>] lösen?

      Qapla'

      Kannst Du mir helfen?

      Gruß,
      gondor

      1. @@gondor:

        nuqneH

        Worin besteht dein Problem, nach "anderesforum/nachricht/" gefolgt von einigen Ziffern (die es zu merken gilt) gefolgt von "/index.html" zu suchen und durch "meinforum/forum.html?id=" + dem Gemerten zu ersetzen?

        Lässt sich dein Problem durch Lektüre von k/π [<http://de.selfhtml.org/perl/sprache/regexpr.htm@title=Reguläre Ausdrücke>] lösen?

        Kannst Du mir helfen?

        Weil du es bist.

        Worin besteht dein Problem, nach "anderesforumhttp://de.selfhtml.org/perl/sprache/regexpr.htm#maskierung@title=/nachrichthttp://de.selfhtml.org/perl/sprache/regexpr.htm#maskierung@title=/" gefolgt von http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichenketten@title=einigen http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichen@title=Ziffern (die es zu http://de.selfhtml.org/perl/sprache/regexpr.htm#merken@title=merken gilt) gefolgt von "http://de.selfhtml.org/perl/sprache/regexpr.htm#maskierung@title=/index.html" zu suchen und durch "meinforum/forum.html?id=" + dem Gemerkten zu ersetzen?

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        1. Hallo Gunnar,

          @@gondor:

          nuqneH

          Worin besteht dein Problem, nach "anderesforum/nachricht/" gefolgt von einigen Ziffern (die es zu merken gilt) gefolgt von "/index.html" zu suchen und durch "meinforum/forum.html?id=" + dem Gemerten zu ersetzen?

          Lässt sich dein Problem durch Lektüre von k/π [<http://de.selfhtml.org/perl/sprache/regexpr.htm@title=Reguläre Ausdrücke>] lösen?

          Kannst Du mir helfen?

          Weil du es bist.

          Worin besteht dein Problem, nach "anderesforumhttp://de.selfhtml.org/perl/sprache/regexpr.htm#maskierung@title=/nachrichthttp://de.selfhtml.org/perl/sprache/regexpr.htm#maskierung@title=/" gefolgt von http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichenketten@title=einigen http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichen@title=Ziffern (die es zu http://de.selfhtml.org/perl/sprache/regexpr.htm#merken@title=merken gilt) gefolgt von "http://de.selfhtml.org/perl/sprache/regexpr.htm#maskierung@title=/index.html" zu suchen und durch "meinforum/forum.html?id=" + dem Gemerkten zu ersetzen?

          Eigentlich immer an dem regulären Ausdruck an sich... also dem Pattern.

          Danke für die Linkbeispiele. Ich denke, viel mehr kann ich aus Dir nicht ausquetschen, oder?

          Qapla'

          Gruß,
          gondor

          1. @@gondor:

            nuqneH

            Ich denke, viel mehr kann ich aus Dir nicht ausquetschen, oder?

            Das sollte dir schon reichen. Ein bisschen SELF muss sein.

            Andernfalls müsste ich aus dir was rausquetschen: Geld für die Erledigung deines Auftrags.

            Qapla'

            --
            Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
            1. @@gondor:

              nuqneH

              Ich denke, viel mehr kann ich aus Dir nicht ausquetschen, oder?

              Das sollte dir schon reichen. Ein bisschen SELF muss sein.

              Taste mich morgen an die Ausdrücke ran. Wenn ich kein Land sehe, musst Du mir ein wenig Licht ins Dunkle bringen.

              Andernfalls müsste ich aus dir was rausquetschen: Geld für die Erledigung deines Auftrags.

              ... ein Stück weit schon. Aber das Problem ist nur ein kleiner Teil von dem was noch vor mir liegt ;-)

              Qapla'

      2. Hello,

        Leider habe ich viele dieser Links (als String):

        $in="
        ...
        <a href="anderesforum/nachricht/25663/index.html">Linkname</a>
        <a href="anderesforum/nachricht/45233/index.html">Linkname</a>
        <a href="anderesforum/nachricht/18976/index.html">Linkname</a>
        <a href="anderesforum/nachricht/64894/index.html">Linkname</a>
        <a href="anderesforum/nachricht/81247/index.html">Linkname</a>
        ...
        ";

        zu:

        $out="
        ...
        <a href="meinforum/forum.html?id=25663">Linkname</a>
        <a href="meinforum/forum.html?id=45233">Linkname</a>
        <a href="meinforum/forum.html?id=18976">Linkname</a>
        <a href="meinforum/forum.html?id=64894">Linkname</a>
        <a href="meinforum/forum.html?id=81247">Linkname</a>
        ...
        ";

        wie wäre es mit einem einfachen str_ireplace()?
        http://de.php.net/manual/en/function.str-ireplace.php

        $out = str_ireplace('href="anderesforum/nachricht/', 'href="meinforum/forum.html?id=', $in);

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de