phpbar.de logo

Mailinglisten-Archive

[php] Regex

[php] Regex

Manuel Carrara php_(at)_phpcenter.de
Sat, 5 May 2001 21:14:09 +0200


Hallo

leider hab ich selber noch keine Lösung für das Problem gefunden :(

Könnte es sich vielleicht doch jemand nocheinmal anschauen.

Auch wenn jemand sagt, es ist so nicht möglich oder blödsinn, hilft
mir das schon weiter.

Erklärung für was ich das brauche:
Ich möchte dem User die Möglichkeit geben seinen Text in einem Editor
zu formatieren. Jedoch nicht irgendeinem sgml-dialekt
(html,xml) sondern in einer Art Makro-Sprache.

z.B. gib er {fett{Dieser Text ist Fett}} ein, so verändert das script,
je nach Vorlage das {fett...} in: <em>Dieser Text ist Fett</em> um.

Der Sinn besteht darin, möcht ich jetzt alle {fett...} in <h1>Dieser Text ist Fett</h1>
verändern, muß ich es nur in dem Styletemplate deffinieren.
Benutze ich XML bzw HTML Tags, ist der Inhalt bei HTML nicht von dem
Aussehen getrennt. Bei XML hab ich das Problem, wie erkläre ich dem
Anwender das z.B. jder Tag geschlossen werden muß und das fett: bold
heist und das man mache Tags nicht benutzen darf.
ODER stimmt der Html-Code? Stimmt der XML-Code?
hier ist es sogar noch schlimmer, wie sag ich dem User das er im
XML was falsch hat ?? je nach parser fällt er mir (pardon) auf die Schnautze.

Deshalb eine Text mit einer abstrakten, vielleicht nicht so mächtigen
wie XML, Trennung von Inhalt, Formatierung und Darstellung.
Es währe dann aber ohne weiters möglich in XML+XSLT, HTML+CSS zu
exportieren.

Sinn ist es später, dieses Text-Objekt an einer anderen Stelle
nocheinmal zu verwenden z.B. Fax, eMail, PDF ...

Aus diesem Grund kann ich nur bitten: schaut euch das Problem noch
einmal an.

Und naja: vielleicht hat einer noch eine bessere Idee ;)

Best regards,

Manuel
php-ml_(at)_w3suite.com


--8<------------------------------------------------------------------

Hello Liste,

  hab ein kleines Problem, und hoffe einer von euch regex-Experten
  kann mir helfen ;)

  Folgendes ich will einen String:
   $string1 = "sds sdsdf sfsdf s {italic{Nachricht}} jdhfkasdfhksadf";
   //                   Tag alias ---^    ^--- String in Tag

   $string2 = "sds sdsdf sfsdf s {bold{zzy{Nachricht}}} jdhfkasdfhksadf";
   //                   Tag alias ---^  ^  ^--- String in Tag
   //                                   |-- Style alias für diesen Tag

   $string3 = "... {bold{sdfh}} {link(http://domain.com){zzxc{Hier klicken}}} fkasdfhksadf";
   //                Tag alias ---^           ^            ^      ^--- String in Tag
   //                                         |            |-- Style alias für diesen Tag
   //                                         |-- mache Tags-aliase haben Eigenschaften (hier Linkadresse)

   
  so umwandeln das das Ergebnis:
   $erg1 = "sds sdsdf sfsdf s <em>Nachricht</em> jdhfkasdfhksadf";
   $erg2 = "sds sdsdf sfsdf s <em class"zzy">Nachricht</em> jdhfkasdfhksadf";
   $erg3 = "... <em class="bold">sdfh</em> <a href="http://domain.com" class="zzxc">Hier klicken</a> fkasdfhksadf";

 ungefähr dann so aussieht. ;)
 
 Hab schon viele Variationen mit "eregi_replace" versucht, auch
 mehrere Tutorials gelesen, bekomme es aber nicht hin.
 
 Das Wichtige daran soll eigentlich sein, daß mehrere Tags innerhalb
 eines Strings sein kann. z.B. einmal bold, dann ein link, usw.

 Jeder Tagalias soll nach folgen Konventionen geparst werden:
 { Tagalias ([optional]wert) {[optinal]Stylealias { Taginhalt } } }

 PS1: XML kommt nicht in Frage, da es ein User-Interface ist und ich den
 Usern nicht xml beibringen kann ;)
 
 PS2: toll währe es wenn es auch noch in die andere Richtung
 funktionieren würde. d.h. Einlesen des bereits geparsten codes.

 Ich weis es ist nicht einfach und ich kann auch von niemandem
 verlangen, daß er mir das Problem löst, aber vielleicht ein
 Hilfestellung geben.

 Achso: es ist ein open-source projekt, also steht es dann jedem zur
 Verfügung ;)




php::bar PHP Wiki   -   Listenarchive