Ankündigung

Einklappen
Keine Ankündigung bisher.

Text zur Grafik umwandeln? (schwerer Fall zu lösen)

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text zur Grafik umwandeln? (schwerer Fall zu lösen)

    Hallo!

    Ich hoffe sehr, dass Ihr mir bei meinem Problem helfen könnt.
    Fasse mich auch kurz, damit ich Euch net extra verwirre.

    Ich möchte in meiner Website bestimmte Textzeichen in eine Grafik automatisch umwandeln lassen.
    Zum Beispiel die Zeichenfolge abc.
    In meinem Quelltext also schreibe ich mehrere Sätze und irgendwann taucht nun die Zeichenfolge abc auf.
    Ich speichere die php seite, lade sie auf meinen Webspace, rufe die Site auf und ich möchte nun, dass auf einmal statt der Zeichenfolge abc, eine vordefinierte Grafik erscheinen soll.

    Auf php.net habe ich mich bisweilen schlau gemacht und folgendes Script gefunden, welche meine Bedürfnisse jedoch NICHT befriedigt:
    PHP-Code:
    <?
    $message = 'abc';
    $message = str_replace('abc', '<img src="test.png" alt="...">', $message);
    echo $message;
    ?>
    Wie gesagt, dieses erfüllt definitiv nicht meinen Wunsch.

    Denn ich möchte, dass ich einfach nur meinen Text schreibe und PhP sich um alles weitere automatisch kümmert und das abc bei jedem Seitenaufruf automatisch zu einer Grafik wandelt.

    Mjoa, wie kann ich dass denn nun veranstalten?
    Kann mir wer hierbei weiterhelfen?
    Ich wäre Euch wirklich sehr dankbar!

    Lg, mallerfix

    P.s: Und bitte habt etwas geduld mit mir, da ich PHP nur durch Codesnippets und abschauen von anderen, laufenden Scripts kann.
    Danke Euch!
    Hilfe?!:confused:


  • #2
    Du kannst das Outputbuffering zum Filtern von Ausgaben verwenden.

    http://www.php.net/manual/en/function.ob-start.php

    Alles was dein Skript an Ausgaben produziert kannst du damit fangen und entsprechend manipulieren. Du solltest wissen, dass damit alles gefangen wird, also natürlich auch dein HTML, entsprechend musst du beim Ersetzen von Zeichenketten aufpassen, dass du dir dann nicht deine Seite zerschießt.
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Danke Dir für Deine sehr schnelle Antwort. Jedoch komme ich damit nicht wirklich klar.
      Es scheint aber das zu sein, was ich mir wünsche.
      Die Frage ist jetzt nur, wie ich das alles umsetzen muss, damit es läuft?

      Kannst Du mir hierbei weiterhelfen?
      Hilfe?!:confused:

      Kommentar


      • #4
        Die Antwort habe ich befürchtet. Was an Example #1 hinter dem Link verstehst du nicht?
        "Mein Name ist Lohse, ich kaufe hier ein."

        Kommentar


        • #5
          Also, entweder du machst es oben und str_replace (falls es ein bestimmter Text ist) oder mit preg_repalce_callback, fall es ein muster ist, dann ersetzt du es durch ein <img ...> und bei src nimmst du dann einfach eine php, wo der text per GET angehängt wird und in der datei dann ausgelesen wird und dann als bildressource zurückgeliefert wird. (example.com/bild.php?text=hans%20peter)
          Signatur:
          PHP-Code:
          $s '0048656c6c6f20576f726c64';
          while(
          $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

          Kommentar


          • #6
            Hi Chriz!
            Danke Dir. Ich konnte es nur net verstehen, weil Dein Link mich auf die andere Site brachte.
            PHP: Output Control Functions - Manual
            Offensichtlich hast Du jedoch editiert so dass ich jetzt nun wesentlich mehr verstehe!!!
            Danke.
            Es funktioniert.
            Jedoch habe ich noch eine Frage dazu:
            Wie kann ich denn mehrere Zeichenfolgen definieren?
            Also nicht nur einmal:
            return (str_replace("apples", "oranges", $buffer));

            Weil einfach mehrere definieren kann ich hiermit nicht.
            Weißt Du da noch etwas?

            Auf jeden Fall hast Du mir seeeehr geholfen!
            Vielen Dank!

            Und ByStones hab ich gar net kappiert. xD Sorry.
            Hilfe?!:confused:

            Kommentar


            • #7
              Hm nein, doch nicht so ganz.
              Ein großes Problem besteht bei mir noch.
              Ich lade meine Inhalte via Ajax und genau dort drin sind die Textzeichen (quasi php include, nur dass die gesamte Site nit neugeladen wird).

              Das Script funktioniert zwar auf der Hauptseite, aber wenn ich die Inhalte im Container via Ajax lade, werden die dortigen Zeichen nicht umgesetzt.

              Uff. -.-"
              Will das bedeuten, dass ich doch auf dem falschen Dampfer bin?
              Langsam hab ich die Krise hier. ^_^

              Lg, mallerfix
              Hilfe?!:confused:

              Kommentar


              • #8
                Buchstaben zu Bildern mit GD2

                Wie viele unterschiedliche Buchstabenfolgen willst Du denn zu Grafiken verwandeln?
                Möglicherweise ist sind die Funktionen
                --> imagepstext()
                siehe PHP: imagefttext - Manual
                oder
                --> imagefttext()
                aus der PHP-Grafik-Bibliothek GD2 Deine Freunde? Die bauen Dir nämlich aus einer Zeichenfolge "Abcdefg ..." ein Bild [Abcdefg ...] .

                Grüße, D.L.

                Kommentar


                • #9
                  Hallo!
                  Imageft-/ps ist nicht das was ich brauche.
                  Faktum:
                  Bestimmte Zeichenfolgen wie bspw. abc sollen automatisch zur Grafik getauscht werden.
                  Dies klappt ja bei mir schon, jedoch NUR auf der index (hauptseite) und nicht in einem nachträglich mit ajax geladenen content in der hauptseite.
                  Das piert mich grad ein wenig.

                  Insgesamt sollen 4 Zeichenfolgen mit 4 Grafiken getauscht werden.
                  abc =grafik 1
                  def = grafik 2
                  usw.

                  Somit habe ich also noch 2 Probleme:
                  1.) Wie kann ich mehr als nur einen Text zur Grafik tauschen.
                  2.) Wie mache ich es, dass es auch im Ajax geladenen Content umgesetzt wird.

                  Wie gesagt: Generell klappt es zwar schon, jedoch mit den eben genannten Problemen.
                  Hilfe?!:confused:

                  Kommentar


                  • #10
                    Du musst das ganze output buffern und auslesen natürlich bei jedem Text machen den du abfragst, es reicht nicht einmal die index so aufzubauen und dann per Ajax weiter Zeug nachzuladen. Du könntest alles was du per Ajax nachlädst per JS nochmal ersetzen lassen.

                    Kommentar


                    • #11
                      Hmm, danke Dir für den Tipp!!!

                      Wie kann ich dieses denn mit Js bewerkstelligen?

                      EDIT:
                      Dieses hier fand ich im Netz:
                      Code:
                      !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
                      <html>
                        <head>
                          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                          <title>Mein Blog</title>
                          <script type="text/javascript">
                            function parse(){
                              var temp = document.getElementById("blogtext").innerHTML.replace(":-)","<img src='smiley.gif'>");
                              document.getElementById("blogtext").innerHTML = temp;
                           }
                          </script>
                        </head>
                        <body>
                          <p id="blogtext">Das ist mein Blogtext :-)</p>
                          <script type="text/javascript">parse();</script>
                        </body>
                      </html>
                      Das ist zwar prächtig toll, funktioniert aber nur ein einziges Male. -.-"
                      Wenn ich das : - ) wiederhole, war's das und es wird nichts mehr angezeigt.
                      Nur wie gesagt der eine Smiley dort.
                      Moah, ich hab gleich Blutdruck eh.
                      UND Herz krich ich auch noch. *lach*
                      #######

                      EDIT 2:
                      Habe noch etwas, vermutlich besseres, gefunden:
                      Code:
                      <script>
                      	
                      	function showSmiley(string) {
                        var smileys = new Object();
                        smileys[':\\)'] = 'grin.png';
                        smileys[':\\('] = 'sad.png';
                      
                      for (value in smileys) {
                          smiley = "<img src='imagepfad/smilies/" + smileys[value] + "'>";
                          var search = RegExp("[.*]?("+ value +")[.*]?","i");
                          string = string.replace(search, smiley);
                        }
                      
                        return string;
                      }
                      		
                      	function tuwas() {
                      		string = document.getElementById('text').innerHTML;
                      		string = showSmiley(string);
                      		document.getElementById('text').innerHTML = string;
                      	}
                      	
                      	</script>
                      
                      </head>
                      <body onLoad="tuwas()">
                      
                      <div id="text">das ist :( der text :-) </div>
                      Auch dieses funktioniert toll.
                      ABER (grrrrrrr) nur ein einziges Male.
                      Was läuft denn hier falsch?
                      Ich darf nur einmal einen einzigen Smiley anzeigen/austauschen lassen???
                      Hilfe?!:confused:

                      Kommentar


                      • #12
                        Ja, dachte mir dass die Hauptseite des Outputbuffering erstmal verwirrend ist, deshalb der neue Link.

                        Zitat von mallerfix Beitrag anzeigen
                        1.) Wie kann ich mehr als nur einen Text zur Grafik tauschen.
                        Gewöhn dir mal an ins Handbuch zu schauen:
                        PHP: str_replace - Manual
                        mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

                        [..]

                        Siehe auch

                        * str_ireplace() - Groß- und kleinschreibungsunabhängige Version von str_replace
                        * substr_replace() - Ersetzt Text innerhalb einer Zeichenkette
                        * preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
                        * strtr() - Tauscht bestimmte Zeichen aus
                        Das ist die Funktionssignatur. mixed $search bedeutet, die Variable $search (1. Parameter) kann unterschiedliche Typen annehmen, vermutlich also, weil nicht nur ein String sondern auch ein Array übergeben werden kann
                        Siehe dazu wieder Example #1 von meinem Link in diesem Posting. Das Handbuch ist dahingehend eine sehr gute Referenz.

                        2.) Wie mache ich es, dass es auch im Ajax geladenen Content umgesetzt wird.
                        Genau so wie du es bei der Hauptseite auch gemacht hast Für jede Standalone-Seite, die du mit PHP erzeugst, musst du diese Prozedur durchgehen. Darum benutzt man heutzutage eigentlich immer eine Bootstrap Funktionalität. Das heißt eine einzige Datei ist die "Eingangstüre" für deine Website.

                        z.B.
                        index.php?cat=news
                        index.php?cat=home
                        index.php?cat=ajax&load=chatbox

                        usw. Über die index.php lädst du also verschiedene Inhalte und kannst hier auch zentral eine Funktionalität wie von dir gewünscht einbauen.
                        "Mein Name ist Lohse, ich kaufe hier ein."

                        Kommentar


                        • #13
                          Moin Moin Chriz!

                          Nun, erst einmal vielen Dank für Deine Hilfestellung.
                          Und in das Handbuch von php zu schauen, habe ich mir schon lange angewöhnt.
                          Doch muss ich daran erinnern, wie es im ersten Beitrag von mir steht:
                          "[...] bitte habt etwas geduld mit mir, da ich PHP nur durch Codesnippets und abschauen von anderen, laufenden Scripts kann."

                          Mit anderen Worten:
                          Ich hab keinen Plan was welcher Befehl wo macht. Ich kann nur kopieren und versuchen ein Script irgendwie zum funktionieren zu bewegen.
                          Zusätze wie "Das ist die Funktionssignatur" oder auch "weil nicht nur ein String sondern auch ein Array übergeben werden kann", sagen mir absolut gar nüschts und kann damit nicht wirklich etwas anfangen.

                          Hm, mjoa, ist alles nicht so einfach. Ich weiß. Und sicherlich ist es bestimmt nicht einfach, mich zu verstehen oder mir etwas beizubringen, weil ich halt zwar net blöd, aber unwissend bin.
                          Daher bedanke ich mich auch sehr dafür, dass man sich trotzdem meiner annehmen mag!

                          Zum Faktum!
                          Ich beschränke mich mal jetzt auf ein einziges, von Dir genannte Beispiel, welches ich schon versuche abzuändern. Achtung: Kopfschüttelgarantie. ^_^
                          Dies ist bei mir in der aller ersten Zeile:
                          PHP-Code:
                          <?php
                          function callback($buffer)
                          {
                          // replace all the apples with oranges
                          //  return (str_replace("apples", "oranges", $buffer));
                          return (str_replace(':-)''<img src="grin.png" title=":-)">'$buffer));
                          return (
                          str_replace(':-(''<img src="sad.gif" title=":-)">'$buffer));

                          }
                          ob_start("callback");
                          ?>
                          Soa und am Ende steht dann wieder:
                          PHP-Code:
                          </body>
                          </html>
                          <?php
                          ob_end_flush
                          ();
                          ?>
                          Ok, soweit ja alles plausibel und auch richtig.
                          Mein Text, zum Testen, sieht so aus:
                          Code:
                          Grinse-Smiley :-)
                          <br />
                          Trauriger Smiley :-(
                          <br />
                          Ok, das einzige was davon klappt, ist der Grinse-Smiley.

                          Ja, ick wees wovon Du vorhin geschrieben und gemeint hast.
                          Doch kann ich nicht ganz verstehen, wo ich wie weitere Smileys umsetzen kann. Bitte entschuldige!
                          ~~~
                          Wenn wir dieses Problem lösen könnten, bliebe noch eines zum Schluß.
                          Und zwar den mit Hilfe von Ajax geladenen Content, wobei die Smilies ja leider von der Umschreibung unberührt bleiben.
                          Nun... *grübel* ... ich kann (wie Du sorgsam erklärt hast) mit "?cat" (oder ähnlich) nicht arbeiten, da die Seiten bei mir definitiv nicht neugeladen werden dürfen/sollen.
                          Daher arbeite ich mit "prototype.js" um in die Hauptseite einen Content zu laden.
                          Ich denke, Du kannst das gerade so bissl nachvollziehen?
                          Also, uhm, mjoa.

                          Wie gesagt, ich brauche etwas in die Materie eingreifende Hilfe und Beispiel Codeschnippsel.
                          Kannst Du mir noch ein bissl weiterhelfen? Bitte?
                          Weil, irgendwie komme ich nicht weiter. -.-"
                          Vielen Dank!

                          Liebe Grüße, mallerfix
                          Hilfe?!:confused:

                          Kommentar


                          • #14
                            Zitat von mallerfix Beitrag anzeigen
                            PHP-Code:
                            <?php
                            function callback($buffer)
                            {
                            // replace all the apples with oranges
                            //  return (str_replace("apples", "oranges", $buffer));
                            return (str_replace(':-)''<img src="grin.png" title=":-)">'$buffer));
                            return (
                            str_replace(':-(''<img src="sad.gif" title=":-)">'$buffer));

                            }
                            ob_start("callback");
                            ?>
                            Die Callback Funktion ist auch falsch bzw. kann nur den ersten String ersetzen, weil du danach bereits den veränderten Buffer an die Ausgabe übergibst (return ...)!
                            PHP-Code:
                            function callback($buffer)
                            {
                                
                            /** HIER KANNST DU EIN REIHE VON MANIPULATIONEN EINFÜGEN! **/
                                
                            $buffer str_replace':-)''<img src="grin.png" title=":-)">'$buffer );
                                
                            $buffer str_replace':-(''<img src="sad.gif" title=":-)">'$buffer );

                                
                            /** DER MANIPULIERTE BUFFER WIRD AN DIE AUSGABE ÜBERGEBEN! **/
                                
                            return $buffer;

                            Kommentar


                            • #15
                              Mit deinem Wissen können wir dir nicht sinnvoll helfen, du solltest vielleicht erstmal Grundlagen lernen.

                              Kommentar

                              Lädt...
                              X