Autor | Zpráva | ||
---|---|---|---|
Mastodont Profil |
#1 · Zasláno: 2. 3. 2007, 21:08:17
Ještě jeden dotázek na reguláry bych měl: následující pattern zachytí v BBCode křížení tagů ..[u] .. ..[/u]
'/[b][^([/b)]*?([u])[^([/u])]*?[/b]/' Dá se to nějak upravit, aby to umělo zachytit zároveň i křížení B a I, I a U ? |
||
Mastodont Profil |
#2 · Zasláno: 2. 3. 2007, 21:10:19
Aha, moje chyba - jde o křížení tagů B - U - /B - /U a ten regulár vypadá takto:
'/[b][^([/b)]*?([u])[^([/u])]*?[/b]/' |
||
Mastodont Profil |
#3 · Zasláno: 2. 3. 2007, 21:11:22
Do háje, i se zakázaným formátováním je to vidět blbě .. tak nic, mázněte to. Díky.
|
||
Časová prodleva: 5 měsíců
|
|||
Timy Profil |
#4 · Zasláno: 5. 8. 2007, 19:15:42 · Upravil/a: Timy
A jen tak pro zajímavost, jak má vypadat regulár, který mi z [tex]výraz[/tex] udělá <img src="http://domena.cz/výraz">? Vymyslel jsem tohle:
ereg_replace("[tex]([^/]*)[/tex]", "<img src="http://domena.cz/1">",$text) Ale už z definice je vidět, že se v textu nesmí vyskytnout lomítko "/", což je na prd. Nejsem schopný tam narvat podmínku, že tam nesmí být celé [/tex], tedy něco ve smyslu: [tex]([^([/tex])]*)[/tex] (nefunguje). |
||
nightfish Profil |
#5 · Zasláno: 5. 8. 2007, 19:22:09
Timy
snad to projde správně... $text = preg_replace("/\[tex\](.*)\[\/tex\]/U", "<img src='http://domena.cz/\\1'>", $text); |
||
niCe Profil |
#6 · Zasláno: 5. 8. 2007, 19:29:45
Já to většinou řeším tak, že pomocí str_replace nahradím
str_replace ("[tex]", "Đstart", $vyraz); str_replace ("[/tex]", "Đ", $vyraz); No a pak dam $vyraz = explode ("Đ", $vyraz) a již jen v cyklu for ($i = 0, $i <= count($vyraz); $i++): $dil = trim($vyraz[$i]); if (substr($dil, 0, 5) == "start"):$tohlechci = substr($dil, 5);endif; $obrazek = "<img src="domena.cz/$tohlechci"> endfor; Doufám, že nekecám nesmysly... niCe |
||
Timy Profil |
#7 · Zasláno: 5. 8. 2007, 19:44:13
nightfish
Díky, funguje. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0