| 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: 14 let
|
|||
0