Oznámení

Fórum bylo uzavřeno. Využijte prosím služeb serverů JakPsatWeb, Builder nebo Webtrh.
  • Úvodní stránka
  •  » Regexp
  •  » Vyhledani a parsovani viceradkoveho retezce v bloku HTML podle regularniho vyrazu

#1 před rokem

all.montegro
Člen
Registrovaný: 25. 4. 2011
Příspěvky: 1

Vyhledani a parsovani viceradkoveho retezce v bloku HTML podle regularniho vyrazu

PHP 5.3

Ahoj. Potřebuji poradit s následujícím úkolem:

Mám tento obsah HTML souboru načtený do proměnné $content :

<div>
    <ul>
        [loop({navigation} as {polozka})[
        <li>
            <a href="">
                {polozka[name]}
            </a>
            [if({polozka[sub]})[
            <ul>
                [loop({polozka[sub]} as {sub})]
                <li>
                    <a href="">
                        {sub[name]}
                    </a>
                </li>
                ]
            </ul>
            ]
        </li>
        ]]

    </ul>
</div>

A potřebuji regulární vyraz který mi najde tento úsek:

[loop({polozka[sub]} as {sub})]
   <li>
        <a href="">
           {sub[name]}
        </a>
   </li>
]

celý blok loop ale taky polozka a sub potrbuji mit v poli $matches

A druhý regulární vyraz který mi najde tento úsek:

[loop({navigation} as {polozka})[
    <li>
        <a href="">
            {polozka[name]}
        </a>
     [if({polozka[sub]})[
        <ul>
          [loop({polozka[sub]} as {sub})]
             <li>
               <a href="">
                  {sub[name]}
               </a>
            </li>
         ]
      </ul>
    ]
  </li>
]]

celý blok loop ale taky navigation a polozka potrbuji mit v poli $matches

Takže by to mělo vypadat asi takhle:

<?php
$matches_1 = array(
0=>'[loop({polozka[sub]} as {sub})]
   <li>
        <a href="">
           {sub[name]}
        </a>
   </li>
]',
1=>'polozka[sub]',
2=>'sub',
...
);

$matches_2=>array(
0=>'[loop({navigation} as {polozka})[
    <li>
        <a href="">
            {polozka[name]}
        </a>
     [if({polozka[sub]})[
        <ul>
          [loop({polozka[sub]} as {sub})]
             <li>
               <a href="">
                  {sub[name]}
               </a>
            </li>
         ]
      </ul>
    ]
  </li>
]]',
1=>'navigation',
2=>'polozka',
...
);
?>

Zkoušel jsem na to přijít al bez úspěchu.

Prosím, nějaké nápady?

Editoval all.montegro (25. 4. 2011 20:05)

 

Zápatí