Autor | Zpráva | ||
---|---|---|---|
http Profil |
Ahoj kluci,
napsal jsem v js tenhle výraz a potřeboval bych s ním pomoc v php, nějak mi to nefachá... js z livepreview kde mi to funguje: replace(/\<\;\:color\:([a-zA-Z0-9#]+)\>\;(.*?)\<\;\:color\>\;/g, '<span style="color:$1">$2</span>'); php z db do stránky: $text_page_texy = preg_match_all('<:color\:([a-zA-Z0-9#]+)>(.*?)<\:color>', '<span style="color:$1">$2</span>'); v databázi mám kod uložen takhle: <:color:#ff7800>text<:color> nebo <:color:red>text<:color> výstup asi tušíte: <span style="color:#ff7800">text</span> ...ale ten php mi nějak nejede :( Moderátor nightfish: regulární. Moderátor DoubleThink: Taky regulérní. Přes míň častý výskyt v literatuře taky správně.
|
||
DoubleThink Profil * |
#2 · Zasláno: 18. 1. 2010, 12:56:42 · Upravil/a: DoubleThink
V PHP chybí delimiter okolo výrazu a možná ještě ungreedy přepínač. Kromě toho, ostré závorky by asi neměly být psány entitami, ale normálně (pokud jsou normálně i v řetezci).
|
||
http Profil |
já ti tak nějak vůbec nerozumím :)
mě to funguje takhle: $text_page_texy = preg_replace('<:color:([a-zA-Z0-9#]+)>', 'span style="color:$1"', $text_page); $text_page_texy = preg_replace('<:color>', '/span', $text_page_texy); ale nemyslím si že by to bylo správně http://www.klasici.cz/develop/karavaning/nase-auto Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
![]() |
||
Majkl578 Profil |
#4 · Zasláno: 18. 1. 2010, 14:49:16
Myslím, že tohle je lepší než [#3].
var_dump(preg_replace('~\<\:color\:(#?[a-z0-9]+)\>(.*)\<\:color\>~iU', '<span style="color:$1">$2</span>', '<:color:#ff7800>text<:color> nebo <:color:red>text<:color>')); |
||
http Profil |
#5 · Zasláno: 18. 1. 2010, 14:56:40
Majkl578:
tohle funguje, i když tomu moc nerozumím, hlavně tomu '~' a '#?' a na konci 'iU', ale jede to jak má. díky |
||
Majkl578 Profil |
#6 · Zasláno: 18. 1. 2010, 14:59:11
[#5] http
~ je delimiter, označuje začátek a konec výrazu #? otazník značí, že znak # může být použit, ale nemusí (je to jako #{0,1} iU jsou modifikátory: i = case-insensitive, U = ungreedy |
||
Časová prodleva: 13 let
|
0