Links aus Wörtern

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

  • Links aus Wörtern

    Hallo beisammen,

    Vielleicht kann mir jemand hier helfen. Und zwar

    Ich habe einen Text:

    PHP-Code:
    $text "Das ist ein Text"
    und möchte die einzelnen Wörter in Links umwandeln

    Also nach

    <a href="test.php">Das</a> <a href="test.php">ist</a> <a href="test.php">ein</a> <a href="test.php">Text</a>

    Wie stelle ich das an. Vielen Dank schon mal im voraus.

    Torsten

  • #2
    Re: Links aus Wörtern

    explode, Schleife, fertig.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Für eine Wiki-ähnliche Ersetzung von Worten bietet sich preg_replace an:

      PHP-Code:
      $text preg_replace('/(\w+)/','<a href="test.php">\\\\1</a>',$text); 
      Happiness is an empty error log

      Kommentar


      • #4
        Vielen Dank....

        So gehts......
        PHP-Code:

        <?php
        $text  
        "Das ist ein Text";
        $teile explode(" "$text);



          foreach(
        $teile as $links)
          echo 
        "<a href=\"test.php?search=$links\"> $links </a>";
        ?>

        Kommentar


        • #5
          Die Schleifenmethode ist nicht nur wegen der entfernten und wieder hinzugefügten Leerzeichen unelegant, sie führt auch zu Problemen mit Satzzeichen.

          $text = "Dies ist ein Text, der etwas länger ist.";

          <a href="test.php?search=Dies"> # So weit, so richtig
          ....
          <a href="test.php?search=Text,"> # Komma zuviel
          ...
          <a href="test.php?search=ist."> # Punkt zuviel
          Happiness is an empty error log

          Kommentar


          • #6
            Klarer Fall. Diese Version ist schon besser

            PHP-Code:
            $text  "Das ist ein, Text";
            $teile explode(" "$text);

            $text preg_replace('/([a-zA-Z])/','<a href="test.php">\\1</a>',$text);

            echo 
            $text
            Aber wie krieg ich das hin:

            <a href="test.php?search=$text">\\1</a>

            Denn das $text klappt nicht?

            Kommentar


            • #7
              \\1 ist der Platzhalter für die Wort-Variable im regulären Ausdruck (preg).

              PHP-Code:
              $text preg_replace('/(w+)/','<a href="test.php?search=\\\\1">\\\\1</a>',$text); 
              Damit sollten die Links stimmen.
              Happiness is an empty error log

              Kommentar


              • #8
                PHP-Code:

                $text 
                preg_replace('/([a-zA-Z])/','<a href="test.php?search=\\1">\\1</a>',$text); 
                Aber wenn ich statt
                PHP-Code:
                '/(w+)/' 
                das nehme....
                PHP-Code:
                '/([a-zA-Z])/' 
                wird jeder Buchstabe einzeln verlinkt

                Kommentar


                • #9
                  Original geschrieben von TorstenJer

                  wird jeder Buchstabe einzeln verlinkt
                  du hast ja auch keinen quantor angegeben, wahrscheinlich möchtest du + benutzen

                  Kommentar

                  Lädt...
                  X