Autor | Zpráva | ||
---|---|---|---|
madakilla Profil |
#1 · Zasláno: 12. 7. 2009, 11:01:40 · Upravil/a: madakilla
Zdravim vsetkych fanusikov/pomocnikov/expertov na JPW...
Uvod: Moj problem je zalozeny skor na znalosti regexpu (ktore bohuzial nemam a nemam ani moc casu na to, aby som sa ich naucil v blizkej dobe). Popis skriptu: Vlastny (custom) bbcode vo formate [menu=1]Vína[/menu], [menu=2]Pivá[/menu] atď. Problem je, ze nepoznam regexp dobre na to, aby som dokazal ziskat parametre za "=" a v samotnom tagu. Co by som chcel dosiahnut je, aby sa mi parametre vsetkych najdenych tagov dali do nejakeho pola, napriklad: $menu=array(1=>'Vína',2=>'Pivá'); Ak existuje nejaka finta, prosim poradte mi. Mam docela fofry a zatial som vzdy nasiel pomoc na JPW (citam to tu casto). Dakujem vopred. |
||
Nox Profil |
#2 · Zasláno: 12. 7. 2009, 11:12:48 · Upravil/a: Nox
Zkus
#\[menu=(\d)+\].*?\[/menu\]# for($i = 1;$i<count($result)-1;$i=$i+2){ $menu[$result[$i]]=$result[$i+1]; } |
||
madakilla Profil |
#3 · Zasláno: 12. 7. 2009, 11:26:13 · Upravil/a: madakilla
Dakujem, toto je ako som to pouzil pre "further reference" :D
preg_match_all('#\[menu=(\d)+\].*?\[/menu\]#',$unparsed,$result); vysledkom je: Array ( [0] => Array ( [0] => [menu=1]Vina[/menu] [1] => [menu=2]Piva[/menu] ) [1] => Array ( [0] => 1 [1] => 2 ) ) este ak by sa dalo Nox, vedel by si mi poradit ako vytiahnut "Vina" a "Piva" pomocou regexpu? (viem to aj sam jednoduchymi strpos a pod, ale urcite poznas daku elegantnejsiu formu) EDIT: odpovedam si sam :D preg_match_all('#\[menu=(\d)+\](.*?)\[/menu\]#',$unparsed,$result); result array: A rray ( [0] => Array ( [0] => [menu=1]Vina[/menu] [1] => [menu=2]Piva[/menu] ) [1] => Array ( [0] => 1 [1] => 2 ) [2] => Array ( [0] => Vina [1] => Piva ) ) Dakujem Noxovi, tato tema moze byt uzatvorena. |
||
Nox Profil |
#4 · Zasláno: 12. 7. 2009, 15:05:58
madakilla
Aha, upravoval jsem ten regexp a zapomněl tam závorky...on s nimi ten můj cyklus co je pod tím počítá, ale už si na to přišel sám, tak dobré Pokud chceš, tak zamčít své téma můžeš sám, někde dole je na to odkaz |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0