Dynamische Links aus DB-Textfield auslesen

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

  • Dynamische Links aus DB-Textfield auslesen

    Hallo,
    ich will Text aus einer DB auslesen. In diesem Text kommen mehrfach Links auf andere Seiten vor. Diese Links müssen gewisse Informationen wie Erhaltung eines gewissen Schemas, Herkunft, IDs... enthalten die per GET übmittelt werden sollen. Ist es möglich Text aus einer DB auszulesen der links enthält die GET verwenden?
    Damit diese Links funktionieren müssen sie geparst werden. Text der aus einer DB ausgelesen wird aber nicht geparst.
    Weiß jemand dazu eine Lösung?

    .. return ..
    Zuletzt geändert von return; 12.06.2004, 13:10.

  • #2
    http://www.selfphp.info/funktionsref...ionen/eval.php

    Kommentar


    • #3
      Original geschrieben von return
      Damit diese Links funktionieren müssen sie geparst werden. Text der aus einer DB ausgelesen wird aber nicht geparst.
      du weißt also, dass du die texte parsen müsstest - ja warum tust du's denn dann nicht ...?

      Original geschrieben von heino1989
      eval()
      pfui bah.
      eval ist immer die schlechteste aller denkbaren lösungen.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hallo wahsaga,

        pfui bah - wenn Du schreibst das eval immer die schlechteste aller denkbaren lösungen ist - was ist dann eine geeignete Lösung?

        Auch sonst komme ich leider nicht weiter.

        Ich habe volgenden Code:
        PHP-Code:
        $textvar $row[article_part_content];
        $text '$textvar' ;
        eval (
        "\$text = \"$text\";");
        echo 
        $text 
        In der DB befindet sich folgender simpler Code zum testen:
        PHP-Code:
        $qwer asdfasdf 
        echo 
        $qwer 
        der mir leider wieder orginal ausgegeben wird.

        Vielen Dank,
        ;; return

        Kommentar


        • #5
          Original geschrieben von return
          pfui bah - wenn Du schreibst das eval immer die schlechteste aller denkbaren lösungen ist - was ist dann eine geeignete Lösung?
          eval ist nun mal ein absoluter notnagel, und zeigt nur, dass der programmierer keine andere, sinnvolle lösung seines problems finden konnte.
          eval is evil, hat irgendein kluger mensch mal gesagt, und da gibt es wenig hinzuzufügen. es ist unperformant, unsicher, kurz: murks.

          In der DB befindet sich folgender simpler Code zum testen:
          PHP-Code:
          $qwer asdfasdf 
          echo 
          $qwer 
          na davon, dass in der DB auch php-code (var, echo ...) steht, ist jetzt aber zum ersten mal die rede.
          in so einem fall würde wohl wirklich nur noch eval helfen - allerdings sollte dann klar sein, dass schon das datendesign verkorkst worden ist.
          in eine DB gehört kein PHP-code, der dann noch ausgeführt werden soll. wenn du sowas brauchst, dann solltest du dich eher mit einem template-system o.ä. beschäftigen.

          btw: ich sehe nicht, was dieser beispielcode mit der ursprünglichen fragestellung, in der es doch um irgendwas mit links in der DB ging, zu tun haben soll.
          vielleicht präzisierst du erst mal die fragestellung ein bisschen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            hmm mag ja nichts sagen, aber ich hab grad so das gefühl, dass manche leute den sinn einer datenbank gar nich verstehen

            sie is doch dafür da um daten "SINNVOLL" zwischenzuspeicher und dem benutzer die arbeit leichter zu machen.

            laut deiner fragestellung oben benötigst du für sowatt doch keine datenbank, da reicht ne einfache text-datei... !

            ich bin auch dermeinung, dass php-code nicht in eine Datenbank gehört.
            php-code gehört in eine php-datei, sonst niergends hin!

            definiere mal bitte deine fragestellung präziser...
            thx

            Kommentar


            • #7
              Ich entschuldige mich für das deplazierte Beispiel:
              In dem Text welcher aus der DB ausgelesen wird sollen auch noch ein paar Links stehen.
              Hier ein realistischeres Beispiel:

              <a href="index.php?id='.$_GET[id].'&up='.$_GET[up].'&mid='.$_GET[mid].'&down='.$_GET[down].'&scheme='.$_GET[scheme].'&size='.$size.'&cs=bg">

              Wie bekomme ich die GET Informationen?

              return

              Kommentar


              • #8
                also hmmm ne musterlösung hab ich da jetzt auch nich auf anhieb parat
                ich würd versuchen dsa ganze irgendwie aufzuteilen

                vll. mit explode , wo ich nach & suche
                und dann noch die 1. get-info holen indem du nach ? suchst also

                erst nen explode nachm ? suchen
                also so:

                PHP-Code:
                $var explode("?"$text_aus_db);

                $var2 explode("&"$var[1]); 
                und dann haste jetzt schoma die strings eingeteilt

                nun noch nachm = explodieren und schon haste die infos
                so würd ichs jetzt machen auffe schnelle...

                hoffe konnte helfen

                greetz
                MarsQ

                p.s.: angaben sind ohne gewehr und pistole :P

                Kommentar


                • #9
                  Original geschrieben von return
                  <a href="index.php?id='.$_GET[id].'&up='.$_GET[up].'&mid='.$_GET[mid].'&down='.$_GET[down].'&scheme='.$_GET[scheme].'&size='.$size.'&cs=bg">

                  Wie bekomme ich die GET Informationen?
                  na ja, entweder halt eval - wie gesagt, extrem unschön - oder halt den string parsen/vorkommen von variablennamen durch ihre werte ersetzen lassen.

                  dabei würde es sich dann evtl. anbieten, gar nicht $_GET[mid] in dem string abzulegen, sondern eher platzhalter inder form {mid}, nach denen man dann einfach suchen lassen & sie durch den gewünschten wert ersetzen könnte.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Hallo Wahsaga, Hallo Marskuh,

                    Ich habe das Problem jetzt in der Zwischenzeit gelöst. Ich schreibe in das DB-Textfield den vollständigen link und lasse zu ersetzende Felder ohne Angabe (Beispiel: &size=). Diese lasse ich dann durch str_replace() ersetzen.
                    PHP-Code:
                    $text $ch1 nl2br ($row["article_part_content"]) ;
                    $array_1 = array("&scheme=","&size=");
                    $array_2 = array("&scheme=$_GET[scheme]""&size=$_GET[size]");
                    for(
                    $x=0;$x<3;$x++){
                    $text str_replace($array_1[$x],$array_2[$x],$text);
                    }
                    echo 
                    $text
                    Das funktioniert soweit ganz prächtig. Es scheint auch keine Performanceprobleme zu geben.
                    Hat jemand Erfahrung ob das eventuell Performanceprobleme geben könnte?

                    return

                    Kommentar

                    Lädt...
                    X