ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
8941
8941
EMPFEHLEN
-
Hallo!
Wie aus der Überschrift vielleicht schon zu erahnen ist habe ich folgendes Problem:
Ich möchte dass ein Text in HTML Code umgewandelt wird.
Allerdings soll der Tag
NICHT in HTML Code umgewandelt werden, sonder so bestehen bleiben.Code :1
<a href=[URL="http://www.beispiel.de/"]http://www.beispiel.de[/URL] target="_blank">Link Text</a>
Das Problem ist an sich ja dass es ja auch in einer anderen Reihenfolge (also z.B. erst target und dann die Adresse) bestehen kann.
Hoffe ihr habt eine gute Idee.
Gruß
Christian
-
14.06.07 01:38 #2
- Registriert seit
- Apr 2005
- Beiträge
- 205
Hi, ich muss ehrlich sagen das ich dein Problem nicht ganz verstehe ("target und so, dein Tag ist doch schon html code, oder?"),
aber du kannst doch einfach String Funktionen benuzten, z.B. str_replace und alle Zeichen die du tauschen möchtest tauschen. Evt. brauchst du noch ein nl2br() um Zeilenumbrüche zu machen, aber es sind ja nur wenige Zeichen
-
du könntest erst alles per htmlspecialchars() umwandeln und dann die Links per RegExp in den ursprünglichen Zustand versetzen.
Der RegExp, um die <a>-Tags zu Finden wäre ca. so:Code :1
'#(<a\s.+>|<\/a>)#is'
-
Hey!
OK, dann muss ich mich wohl mal mit regulären Ausdrücken auseinander setzen.
Schade, hatte gedacht es gibt irgend eine Funktion oder so die "sinnvollen" HTML Code nicht umwandelt (ich weiß, hört sich komisch an
)
Vielen Dank schon mal. Wenn noch einer eine andere Idee hat bitte melden!
Gruß
Christian
-
Abend!
Muss noch mal ganz ganz doof nachfragen. Ist mir schon fast peinlich:
Ich hab einen Regulären Ausdruck generiert. Kann also nun nachschauen ob in einem Text sich ein Link versteckt, aber wie soll es nun weiter gehen? Der Link Tag soll ja nicht umgewandelt werden.
Hier mal ein Beispiel:
Also praktisch gesehen muss ich, sobald ich eine Adresse gefunden habe, diese wieder umwandeln!?PHP-Code:$string = "Text vor dem Link <a target="_blank" href="?Page=Test">Test</a> Text nach dem Link"; // So sieht der Text nach der Umwandlung mit htmlspecialchars() aus
// Kommt im String eine Adresse vor?
echo (ereg('(<a)( target="_blank")?( href=").+(">)( target="_blank")?.+(</a>)', $string))?'Adress-Tag gefunden':'Normaler Text';
Stehe grade nur mächtig aufm Schlauch wie ich das am besten mache?!
Gruß und sorry für die dumme Frage!
-
16.06.07 05:24 #6
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Ich hab das jetzt mal gelesen und bin der Meinung, das du damit auf dem Holzweg bist. Bitte poste doch mal einen Beispiel-Text, den umwandeln willst. Kannst ja auch per Attachment machen. Ich vermute an dieser Stelle, das es für dein Problem eine ganz simple Lösung gibt.
-
Hallo!
OK, dann mal hier die Schritte mit Text usw.:
1) Texteingabe:
2) Dieser Text wird nun mit htmlentities() umgewandelt, und es entsteht daraus:Code :1
Dies ist ein Beispieltext, der auch Umlaute wie Ä Ö Ü oder ß enthalten kann. Halt grade dass was man eingibt. Es können auch " drin vor kommen, oder halt <a href="http://www.adresse.de">Links</a>. Oder es wird was <strong>FETT</strong> geschrieben.
3) Aber einige HTML Tags (fett, unterstrichen, kusiv und Links) sollen bestehen bleiben, also ersetze ich mit str_replace() z.B. <strong> durch <strong>:Code :1
Dies ist ein Beispieltext, der auch Umlaute wie Ä Ö Ü oder ß enthalten kann. Halt grade dass was man eingibt. Es können auch " drin vor kommen, oder halt <a href="http://www.adresse.de">Links</a>. Oder es wird was <strong>FETT</strong> geschrieben.
4) Text wird gespeichertCode :1
Dies ist ein Beispieltext, der auch Umlaute wie Ä Ö Ü oder ß enthalten kann. Halt grade dass was man eingibt. Es können auch " drin vor kommen, oder halt <a href="http://www.adresse.de">Links</a>. Oder es wird was <strong>FETT</strong> geschrieben.
So sieht es aus.
Das einzige Problem was ich habe sind die Links. Müsste also erkennen ob es ein Link ist, (also schauen wo <a anfängt, und > den Tag wieder beendet) und den den Text dazwischen wieder decodieren.
Ich hoffe mein "Problem" ist nun klar geworden.
Gruß!
-
17.06.07 00:46 #8
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Wenn du nur die Umlaute umwandeln möchtest, genügt doch ein regulärer Ausdruck:
PHP-Code:$text = preg_replace( array('/ö/', '/ä/',.....), array('ö', 'ä',.....), $text);
-
Ja, OK, ich könnte mir nun die Arbeit machen und alle Zeichen, für die es auch ein HTML Tag gibt umwandeln, aber da wäre ja dann die Anführungszeichen drunter, und dann würden sie auch bei dem Adresstag umgewandelt, was aber nicht sein soll!
-
17.06.07 01:06 #10
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Stimmt, dafür müsste ein seperater Regex erstellt, werden, der alle Quotes umwandelt, die außerhalb von <a> sind. Dafür brauchst du look-behind und look-ahead. Für diese Anwendung gab es hier schon nen Thread: http://www.tutorials.de/forum/php/27...ght-suche.html
-
OK, danke schon mal, ich versuch mal mein Glück
Ähnliche Themen
-
textbox Text "umwandeln"
Von seroderhesse im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 20.04.09, 19:19 -
echo "$test" nicht umwandeln... ?
Von Templorials im Forum PHPAntworten: 3Letzter Beitrag: 27.03.08, 14:04 -
fehler ! " text in hex und dezimal umwandeln "
Von DJIN im Forum C/C++Antworten: 10Letzter Beitrag: 29.08.07, 08:06 -
HTML-Codebeispiel in HTML-Dokument auch als Code ausweisen und nicht umwandeln?
Von Admi im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 26.02.06, 21:33 -
A href Link in Submit Button umwandeln
Von DaKa im Forum PHPAntworten: 9Letzter Beitrag: 11.06.02, 09:02





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren