Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

PHP ? Textfeld soll HTML erkennen und umsetzten ? !?

Hallo erstmal, ich hoffe ich finde hier ein paar Leute mit PHP Kenntnissen.

Also folgende Situation: Ich habe auf meiner Website eine Art Blogsystem eingerichtet, das heißt wenn ich in mein Textfeld auf seite blog1.php (z.B) einen Text schreibe kommt es auf seite blog.php wieder raus.. So nun kann das Textfeld aber nur normale Texte erkennen und keine Umbrüche oder Links, wie kann ich ein PHP Script erstellen das, dass Textfeld diese HTML befehle verstehen und umsetzen lässt.? Also das ich wenn ich in das Textfeld <br> eintippe, das er mir dann später auch einen Umbruch ausgibt?

Hoffe hier sind ein paar Leute unterwegs die mich verstehen und php auf diesem Niveau beherrschen :) Mfg Nicklas

4 Antworten

Bewertung
  • vor 9 Jahren
    Beste Antwort

    PHP stellt eine Funktion zur Verfügung, mit der Zeilenumbrüche aus einer Textarea in das HTML-Tag <br> umgewandelt werden: nl2br()

    Nehmen wir mal an, dass der per POST übertragene Inhalt eines Textfelds in der Variablen $text vorliegt. Dann wandelt die Programmzeile

             $text = nl2br ($text) ;

    die Umbrüche im Text in das HTML-Format um.

    Eine URL in einen anklickbaren Link umzuwandeln, ist dagegen schon etwas aufwändiger, denn meines Wissens gibt es keine PHP-Funktion, die das automatisch macht. Die Funktion wirst du dir also selbst schreiben müssen, was im Prinzip ja auch kein Problem ist:

    Mit der Funktion stristr() suchst du nach den Zeichenfolgen "http://"/ oder "www". Danach kannst du mit weiteren Stringfunktionen (die zähle ich hier jetzt aber nicht auf) den Link extrahieren und durch die HTML-Schreibweise "<a href = ...> ... </a>" ersetzen.

  • Anonym
    vor 9 Jahren

    hallo nick

    das was Kallisto geschrieben hat ist die einfachste lösung für dein problem. es gibt aber auch die möglichkeit editoren in eine <textarea> einpflegen. das heißt für dich du kannst viele sachen nutzen und die bedienung ist wie bei world.

    schau einfach mal hier: http://www.queness.com/post/212/10-jquery-and-non-...

    das einpflegen ist auch nicht besonders schwer

  • vor 9 Jahren

    PHP Sorry kann die aber sagen wie das generell funktioniert.

    Tokenisieren und nur für die Anzeige mit den richtigen Steuercodes für die Anzeige versehen. Wenn die Token so gewählt sind das sie nicht mir dem normalen HTML kollidieren also intern zum

    Beispiel

    text = "Dies ist ein Text mit einem **Umbruch** Umbruch."

    Mit einer Textersetzung kannst du den Text dann aufbereiten.

    htmltext = Replace (text, "**Umbruch**", "<br>" + chr(13))

    Oder

    anzeigetext = Replace (text, "**Umbruch**", chr(13))

    Für reine Anzeige und Manipulation reicht das aus. Wenn der Text allerdings interpätiert werden soll dann brauchst du einen Pattern Matching Automaten. http://de.wikipedia.org/wiki/String-Matching-Algor...

    Das Grundprinzip eines Patternmatching Automaten ist das reservierte Token eine Zustandsänderung herbeiführen. Und jeder Zustand Wiederum der Startzustand für weitere Zustandsänderungen ist. Konkret:

    Startzustand : Zeichen(folge) => Nächster Zustand

    HTML Startzustand : "<" => Tag - start

    HTML Startzustand : irgendein Zeichen => HTML Startzustand

    Tag - start : "\" => Close Tag Start

    Tag - start : {HTML Tagname} => Tag - Found

    Close Tag Start : {HTML Tagname} => Close Tag Ende

    Close Tag Ende : ">" => HTML Startzustand

    Tag - Found : " " => Tag - Found

    Tag - Found : {Tag Attribut} => Tag Attribut Start

    Tag - Found : {Tag Event} => Tag mit Event Start

    Tag - Found : alle anderen => HTML Fehler / teiner Text

    Tag Attribut Start : "=" => Attribut Wert Start

    Tag Attribut Start : ">" => Tag abgeschlossen

    Attribut Wert Start : " " => Attribut Wert Ende

    Attribut Wert Ende : " " => Tag Attribut Start

    Tag mit Event Start : "(" => Tag mit Event Parameter Start

    Tag mit Event Parameter Start : "," => Tag mit Event Parameter Start

    Tag mit Event Parameter Start : ")" => Tag mit Event Parameter Ende

    {HTML Tagname} : "br", "html", "head", "body" usw. http://webkompetenz.wikidot.com/html-handbuch:html... Hier bitte nur den Text ohne '<' und '>' verwenden

    {HTML Attribut} : "size", "alt", "href" usw. http://webkompetenz.wikidot.com/html-handbuch:html...

    {HTML Event} : "onload", "onclick" usw. http://webkompetenz.wikidot.com/html-handbuch:html...

    Startzustand : <Tag..> => inner Text = Startzustand (Stack verwenden)

    inner Text = Startzustand : <\Tag> => Startzustand

    Im Intereter werden nur die Daten gesammelt also

    Tag

    - Tagname

    - Parameterliste

    - Eventliste

    - Eingebetteter Text inner text also von <tag ...>inner text</tag>

    <BR>, <HR> und <PAR> benötigen eine sonderbehandlung da sie nicht zwingend ein Closetag haben.

    Damit ist ein HTML Interpeter vollständig beschrieben.

  • vor 9 Jahren

    des is schod

Haben Sie noch Fragen? Jetzt beantworten lassen.