Autor Zpráva
madakilla
Profil
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ď.
by som chcel dalej spracovavat v dalsom kode.
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
Zkus
#\[menu=(\d)+\].*?\[/menu\]#

for($i = 1;$i<count($result)-1;$i=$i+2){
  $menu[$result[$i]]=$result[$i+1];
}
madakilla
Profil
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
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
Toto téma je uzamčeno. Odpověď nelze zaslat.