Volltext: "Regular Expression Library"
/* 0.1 - initial release 0.2 - new option: rewrite mail addresses with [at] and [dot] 0.3 - userdefined placeholders for [at] and [dot] 0.4 - new option: links can be open in new window (default: off) 0.5 - support for SqlTablePrefix */ class NP_AutoLink extends NucleusPlugin { function getName() { return 'AutoLink'; } function getAuthor() { return 'Kai Greve'; } function getURL() { return 'http://kgblog.de/'; } function getVersion() { return '0.5'; } function getDescription() { return 'Automatically creates links for internet and mail addresses'; } function install() { $this->createOption('InternetAddress','Automatically create links for internet addresses ?','yesno','yes'); $this->createOption('NewWindow','Open links in a new window?','yesno','no'); $this->createOption('MailAddress','Automatically create links for mail addresses ?','yesno','yes'); $this->createOption('RewriteMailAddress','Rewrite mail addresses with [at] and [dot]?','yesno','yes'); $this->createOption('at','Placeholder for @','text','[at]'); $this->createOption('dot','Placeholder for .','text','[dot]'); } function getEventList() { return array('PreItem', 'PreComment'); } function Treatment($_text) { global $CONF, $blog; if ($this->getOption('NewWindow') == 'yes') { $nw="onclick=\"javascript:window.open(this.href, '_blank'); return false;\""; } if ($this->getOption('InternetAddress') == 'yes') { $_text = preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); $_text = preg_replace('/(\s)(www\.[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } $at = $this->getOption('at'); $dot = $this->getOption('dot'); if ($this->getOption('MailAddress') == 'yes') { if ($this->getOption('RewriteMailAddress') == 'no') { $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,5})/s','\1\2',$_text); } else { $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z]{2,5})/s','\1\2'.$at.'\3'.$dot.'\4',$_text); } } if ($this->getOption('MailAddress') == 'no' && $this->getOption('RewriteMailAddress') == 'yes'){ $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z]{2,5})/s','\1\2'.$at.'\3'.$dot.'\4',$_text); } return $_text; } function event_PreItem($_data) { $_data[item]->body = $this->Treatment($_data[item]->body); $_data[item]->more = $this->Treatment($_data[item]->more); } function event_PreComment($_data) { $_data['comment']['body'] = $this->Treatment($_data['comment']['body']); } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>02 October
Regular Expression Library
"Welcome to RegExLib.com, the Internet's first Regular Expression Library. Currently we have indexed 1095 expressions from contributors around the world."
Regular Expression Library -- presented by ASPSmith.com Training
Wahrscheinlich nicht die einzige Seite, in der man nach Regulären Ausdrücken suchen kann. Nützlich aber auf alle Fälle.
Reguläre Ausdrücke werden benötigt, wenn man mit vorhandenem Text nette Dinge anstellen will, z.B. mal schnell den Hostnamen und die TLD aus einer etwas längeren URL herauspopeln. Dieses Beispiel deshalb, weil im Free-Blogging-Service, den ich unter http://blogmate.net/ aufgebaut habe, jeder Blog eine eigene Subdomain zugeordnet bekommt - und das muss ja irgendwie von der Software begriffen werden, speziell auch deshalb weil die selben Dateien auch unter http://blogmate.de/ zu finden sind. Das muss man ja alles irgendwie an die Blogginsoftware weitergeben.
[Druckversion direkt zum Drucker senden]
Geschrieben von harko um 19:31:09 Uhr - Kategorie: Technik
Karma: 21 [+/-]
Trackback
Derzeit keine Trackbacks vorhanden.
Mit dieser TrackBack url kann der Beitrag verlinkt werden (right-click, copy link target).
Wenn Ihr Blog keine Trackbacks anbietet, kann Ihr Trackback manuell durch dieses Formular eingebaut werden .
Comments
Noch keine Kommentare vorhanden.
Add Comments