PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP plattern


blax
2004-10-03, 11:34:23
preg_replace("/\[A\](.*)\[\/\]/i", "<a>$1</a>", $text);

diese funktion ändert mir alle links mit der Systax link auf <a>link</a>
soweit so gut; wie kann ich das vervollständigen, sodass in dem link keine leerzeichen vorkommen dürfen?
ein ungütliges Beispiel wäre dann:
mehrere Worte

wie kann ich das realisieren?

Coda
2004-10-03, 12:12:12
The diluted inspiration from regexp.org:
(
(
((new|(ht|f)tp)s?://)? # protocol
(?!mailto:)([a-z0-9_-]+:[a-z0-9_-]+\@)? # user:pass
((www|ftp|[a-z0-9]+(-\+[a-z0-9])*)\.)? # url-like start
)
([a-z0-9]+(\-+[a-z0-9]+)*\.)+[a-z]{2,7} # domain
(:\d+)? # port
(/~[a-z0-9_%\-]+)? # ~username dir
(/[a-z0-9_%.-]+(?=/))* # directories
(/[a-z0-9_%-]+(\.[a-z0-9]+)?(\#[a-z0-9_.]+)?)* # pagename
(/?\?([a-z0-9_.%-]+)=[a-z0-9_.%/-]*)? # GET var #1
(&([a-z0-9_.%-]+)=[a-z0-9_.%/-]*)* # GET vars
/?
)


Damit die URL checken, und dann halt noch \[A|a\] davor und \[\/A|a\] dahinter

blax
2004-10-03, 12:20:44
ui..ich glaub da komm ich jetz nicht ganz mit
wie würde da jetz der vollständige befehl mit preg_replace aussehen? :)

ne0
2004-10-04, 15:23:31
$text = preg_replace("#\[A\](.[^\s]*)\[\/A\]#i", "<a>$1</a>", $text);

:)