Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 9. 12. 2012, 18:24:42
Dobrý den. Rád bych udělal funkci kterou bych vždy protáhl text a ten text by se předělal podle toho jaké skripty bych tam spustil.
např.: function text_plugins($text, $string) { require($string); echo $text; //$text ve fci by určoval jaký text má změnit //$string by byl seznam pluginů jaký by se měli použít } echo text_plugins($text, "www"); //opět vyvolal by se text v proměnné $text a použil by se plugin který by byl uložen ve složce "plugins/www.php" //tento plugin by například změnil url v textu na odkaz. Rád bych ale věděl jak udělat to abych mohl sputit více takovýchto pluginů najednou //např.: echo text_plugins($text, "www;bold;black_list"); //opět v textu změní všechny url na odkazy a pak např. některá slova na tučná a black_list by změnil sprostá slova na ***. Dal by mi prosím někdo nějakou radu jak načíst více takovýchto modulů najednou. Jestli to např. nejde takto: echo text_plugins($text, array('www', 'bold', 'black_list'); A jak by měla vypadat zhruba taková struktura toho skriptu který by byl právě uložen např. "plugins/www.php" Našel jsem zde skript který mění url v textu na odkazy: $slovo = split("[[:blank:]]+", $text); for ($y = 0; $y < count($slovo); $y++) { if (eregi("^(www\..+\..{2,4}/?.*)", $slovo[$y])) { //jedna se odkaz typu www... $odkaz = eregi_replace("^(www\..+\..{2,4}/?.*)", "<a href=\"http://\\1\" target=\"_blank\">\\1</a> ", $slovo[$y]); } elseif (eregi("^([fh]{1}[t]{1,2}[p]?[s]?://.+\..{2,4}/?.*)", $slovo[$y])) { //jedna se odkaz typu http://...,ftp://... nebo https://... $odkaz = eregi_replace("^([fh]{1}[t]{1,2}[p]?[s]?://.+\..{2,4}/?.*)", "<a href=\"\\1\" target=\"_blank\">\\1</a> ", $slovo[$y]); } elseif (eregi("^(mailto:.+@.+\..{2,4})", $slovo[$y])) { $odkaz = eregi_replace("^(mailto:(.+@.+\..{2,4}))", "<a href=\"\\1\" target=\"_blank\">\\2</a> ", $slovo[$y]); } else { $odkaz = $slovo[$y] . " "; //jedna se o normalni slovo } $zprava .= $odkaz; //spojime vsechny slova opet dohromady } return $zprava; Předem děkuji za odpovědi. |
||
Alphard Profil |
#2 · Zasláno: 9. 12. 2012, 18:43:22
Tak funkce lze volat dynamicky buď přímo, nebo přes call_user_func(), takže nevidím problém. Seznam funkcí se buď předá v poli, nebo rozparsuje z řetězce a pak se proběhne cyklem.
PS: ereg* nepoužívat. |
||
Časová prodleva: 11 let
|
0