Seite 2 von 2

Verfasst: 08.07.2006 00:07
von cYbercOsmOnauT

Verfasst: 08.07.2006 00:24
von fanrpg
MagMo hat geschrieben:Du solltest dich eventuell mal ein bischen in die Materie einlesen. :grin:
Tue ich ja :(
Aber ich komm ja nicht sehr weit mit sowas :cry:

Am Anfang hatte ich dieses => http://www.php-resource.de/tutorials/read/10/1/

Zwischendurch habe ich auch das von Tekin mal nachgeschlagen aber sehr weit komme ich nicht mit sowas :(

Verfasst: 08.07.2006 00:46
von cYbercOsmOnauT
Also ich lerne immer am Besten in der Praxis. Ich fusch so lange mit sowas herum, bis ich die Lösung habe. Später dann verbessere ich diese Lösung, bis ich es komplett kapiert habe.

Die Page erklärt es eigentlich recht einleuchtend mit Beispielen, oder nicht?

Verfasst: 08.07.2006 00:55
von fanrpg
Ich habe mir das jetzt 3mal durchgelesen und habe immer noch nicht raus wie ich einzelnte Zeichen unabhängig von ihrer Häufigkeit und Stelle ausschliessen kann bzw. auch zulassen und alles andere nicht. :(

Verfasst: 08.07.2006 07:42
von MagMo
Hi,
fanrpg hat geschrieben:...wie ich einzelnte Zeichen unabhängig von ihrer Häufigkeit und Stelle ausschliessen kann bzw. auch zulassen und alles andere nicht. :(
Beispiel: Der reguläre Ausdruck

Code: Alles auswählen

#\[url\][^a]+\[/url\]#is
trifft auf alle Zeichenfolgen zu die zwischen und eingebettet sind und aus mindestens einem Zeichen besteht und jedes beliebige Zeichen außer dem a oder A enthalten darf. Z.B. folgende Zeichenfolgen stimmen mit dem Ausdruck überein:
bcd

123 456df
Folgendes hingegen nicht:

fifa

Dürfen zwischen und keine Buchstaben stehen, dann verwendest du folgendes:

Code: Alles auswählen

#\[url\][^a-z]+\[/url\]#is
Sollen zwischen und 5 bis 8 Zeichen stehen und diese Zeichen dürfen keine Zahlen sein:

Code: Alles auswählen

#\[url\][^0-9]{5,8}\[/url\]#is
usw.

Wäre eventuell sinnvoll, wenn du mal postets, was du mit dem regulären Ausdruck, den du versuchts zu erstellen, erreichen willst.

Grüße
MagMo

Verfasst: 09.07.2006 23:15
von fanrpg
Danke :)
Jetzt ist mir so einiges klar geworden, so weit weg war ich doch nicht von meiner Vorlösung

EDIT: Noch so als Info dabei habt ihr mir geholfen:

Code: Alles auswählen

function add_bbcode($str)
{
	if( $str )
	{
		$pattern = array();
		$replace = array();
		
		// [b] BBCode
		$pattern[] = '#\[b\](.+?)\[/b\]#is';
		$replace[] = '<strong>\1</strong>';
		
		// [i] BBCode
		$pattern[] = '#\[i\](.+?)\[/i\]#is';
		$replace[] = '<i>\1</i>';
		
		// [u] BBCode
		$pattern[] = '#\[u\](.+?)\[/u\]#is';
		$replace[] = '<u>\1</u>';
		
		// [color:#123456] BBCode
		$pattern[] = '#\[color=(\#[0-9A-F]{6}|[a-z]+)\](.+?)\[/color\]#is';
		$replace[] = '<span style="color:\1 ">\2</span>';
		
		// [url]http:// BBCode
		$pattern[] = '#\[url\](http://|ftp://)([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="\1\2">\2</a>';
		
		// [url] BBCode
		$pattern[] = '#\[url\]([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="http://\1">\1</a>';
		
		// [url=http://....] BBCode
		$pattern[] = '#\[url=(http://|ftp://)([a-z0-9\.:~,_\#%\?\/&=-]+?)\]([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="\1\2">\3</a>';
		
		// [url=] BBCode
		$pattern[] = '#\[url=([a-z0-9\.:~,_\#%\?\/&=-]+?)\]([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="http://\1">\2</a>';
		
		$str = preg_replace($pattern, $replace, $str);
		
		return $str;
	
	}
}
Vielen lieben Dank euch allen :)