offtopic: regular expressions

Gesperrt
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

offtopic: regular expressions

Beitrag von mvf »

hallo community

mit den regular expressions stehe immernoch auf kriegsfuss :(

ich möchte gerne einen CMS_HTML container vor der ausgabe im frontend über reg-expr sagen wir ... etwas 'enhancen'

gesucht werden sollen die inhalte der html <h1> - tags

diese sollen dann mit spans umklammert werden, beispiel:

vorher:

Code: Alles auswählen

<h1>
hier stehen SO alle 'mÄÜÖglichen' characters ;) die ein redakteur so eingeben kann (!"$%&/()=?`)... usw
</h1>

nachher:

Code: Alles auswählen

<h1>
<span>#*#</span>
hier stehen SO alle 'mÄÜÖglichen' characters ;) die ein redakteur so eingeben kann (!"$%&/()=?`)... usw
<span>#*#</span>
</h1>
also in richtung

Code: Alles auswählen

		if (!$editmode && ("CMS_HTML[1]" != "" )) {
		
		/*  
		
		?????????????? 
		
			preg_match()
			preg_split()
			
			ich kriegs ned gebacken
 			
		??????????????		
		*/
		
		
		} else {
		    echo "CMS_HTML[1]";
		}
anbody fit out there ?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
oio
Beiträge: 78
Registriert: So 13. Aug 2006, 20:38
Kontaktdaten:

Beitrag von oio »

ähm, hat das "enhancen" :D einen praktischen grund?
(seo oder dergleichen)

wenn es dir um die darstellung, also das eyecatching, das visuelle geht, dann mach das doch mit css oder dtr.

erscheint mir dann sinniger.

cu
cg
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

oio hat geschrieben:ähm, hat das "enhancen" :D einen praktischen grund?
(seo oder dergleichen)

wenn es dir um die darstellung, also das eyecatching, das visuelle geht, dann mach das doch mit css oder dtr.

erscheint mir dann sinniger.

cu
cg
es geht ja um css und kleine images die ich um jede headline setzen möchte aber ohne den redaktuer bemügen zu müssen, der gibt im wysywyg brav an die ist eine h1 und in der preview sieht er seine 'geklammerte' headline
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
oio
Beiträge: 78
Registriert: So 13. Aug 2006, 20:38
Kontaktdaten:

Beitrag von oio »

mvf hat geschrieben:... es geht ja um css und kleine images ...
und wozu dann die spans? formatier doch die h1-tags per css direkt?

also für den regexp müsste das doch reichen: <h1>(.*)</h1> , oder?

cu
cg
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

oio hat geschrieben:und wozu dann die spans? formatier doch die h1-tags per css direkt?
kk dann zeige mir mal wie ich einem h1 tag mit variabler länger/grösse per css ein image voran und auch hintenan stelle?

ziel ist wie gesagt dass der redakteur im wysiwyg seinen text als h1 formatoert und der rest in preview und frontend alleine geschieht ;) like magic

UPDATE:

und mit unterstützung hat es dann doch geklappt:

Code: Alles auswählen

		if (!$editmode && ("CMS_HTML[1]" != "" )) {
		    $content = "CMS_HTML[1]";
		    $content = preg_replace("/<h1([^>]*)>/i","<h1\\1><span>&raquo;</span>",$content);
		    $content = preg_replace("/<\/h1([^>]*)>/i","<span>&laquo;</span></h1\\1>",$content);
		    print ($content);
		} else {
		    echo "CMS_HTML[1]";
		}
@oio:

jetzt kann ich prima in die spam setzen was ich will oder sogar per css bg-images einfügen und die klammern super mit

h1 span {...}

stylen !
Zuletzt geändert von mvf am Mo 18. Sep 2006, 21:17, insgesamt 1-mal geändert.
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
oio
Beiträge: 78
Registriert: So 13. Aug 2006, 20:38
Kontaktdaten:

Beitrag von oio »

Code: Alles auswählen

$text = "CMS_HTML[1]";
$regexp = '/<h1>(.*)<\/h1>/i';
$solltext = '/<h1><span>$1<\/span><\/h1>/i';

echo str_replace($regexp,$solltext,$text);
ungetestet
mvf hat geschrieben:... kk dann zeige mir mal wie ich einem h1 tag mit variabler länger/grösse per css ein image voran und auch hintenan stelle? ...
zeig mir ein beispiel, bei dem es typographisch ratsam wäre :P

geht aber auch:

Code: Alles auswählen

h1:before{content:url(image.gif);}
h1:after{content:url(image.gif);}
(nur im ie natürlich nicht :D )

cu
cg
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

oio hat geschrieben: (nur im ie natürlich nicht :D )
so wie oben doch ;)
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
oio
Beiträge: 78
Registriert: So 13. Aug 2006, 20:38
Kontaktdaten:

Beitrag von oio »

mvf hat geschrieben:
oio hat geschrieben: (nur im ie natürlich nicht :D )
so wie oben doch ;)
meine version mit str_replace ist schneller und ein span zusätzlich reicht auch für dein vorhaben :P

cu
cg

edit: sicher, dass der zweite preg_replace tut, was er soll?
edit2: äh ... sicher, dass der erste preg_replace tut, was er soll?
sieht aus, als würde er innerhalb des <h1> replacen.

bin da aber auch nicht das fuchsmuttertier.
Gesperrt