Seite 1 von 1

offtopic: regular expressions

Verfasst: Mo 18. Sep 2006, 19:08
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 ?

Verfasst: Mo 18. Sep 2006, 20:15
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

Verfasst: Mo 18. Sep 2006, 20:23
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

Verfasst: Mo 18. Sep 2006, 20:53
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

Verfasst: Mo 18. Sep 2006, 21:00
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 !

Verfasst: Mo 18. Sep 2006, 21:15
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

Verfasst: Mo 18. Sep 2006, 21:20
von mvf
oio hat geschrieben: (nur im ie natürlich nicht :D )
so wie oben doch ;)

Verfasst: Mo 18. Sep 2006, 21:26
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.