Autor Zpráva
Kubik
Profil *
Zdravim, chtel bych se zeptat, jak pomoci regularniho vyrazu ziskat blok html kodu

priklad:

$x ='<div class="box" id="post217640">
        <div class="inbox">
            <div class="postleft">
                <dl>
                    <dt><strong><a href="profile.php?id=11409">Michal753</a><img src="./img/gender-1.png" style="padding-left:5px;"></strong></dt>
                    <dd class="usertitle"><strong>Zelenáč</strong></dd>

                    <dd class="postavatar"></dd>
                    <dd>Registrovaný: 27. 07. 2011</dd>
                    <dd>Příspěvky: 4</dd>
                          <dd><a href="reputation.php?uid=11409">Reputace</a> :   &nbsp;&nbsp;<strong title="[+0 / -0]">0&nbsp;</strong></dd>
                </dl>
            </div>

            <div class="postright">
                <h3>oblouk</h3>
                <div class="postmsg">
                    <p>ahoj zase potřebuju pomoct:<br />Mostní kruhový oblouk má výšku v = 8m.Oblouk je součástí kružnice s poloměrem r = 29m.Určete rozpětí tohoto mostního oblouku.<br />náčrtek jsem si udělal ale stejnak nemůžu přijít na to jak se to počítá</p>                </div>
            </div>
            <div class="clearer"></div>

            <div class="postfootleft"><p>Offline</p></div>
            <div class="postfootright"><div>&nbsp;</div></div>
</div>
</div>
</div>';

pozn. jedna se o forum, nekolikrat se mi tam opakuje takovy kousek kodu na strance

A me ja se potrebuju dostat jen k nektery informacim

Kdo ho poslal?
<dt><strong><a href="profile.php?id=11409">Michal753</a><img src="./img/gender-1.png" style="padding-left:5px;"></strong></dt>

Kdy
<dd>Registrovaný: 27. 07. 2011</dd>

Pocet prispevku
dd>Příspěvky: 4</dd>

A jestli se jedna o rekaci na jiny prispevek, v tomto pripade ne


Mohl bych udelat regularni vyraz pro kazdou cast, ale chci se zeptat, zda to nejde udelat nejak pro cely blok toho kodu
Data chci postupne ukladat do databaze, navic nekde reakce na prispevek je, nekde ne. Takze pokud bych to delal po castech, ze nejdriv bych vytvoril regularni vyraz, ktery by mi vratil, kdo ho poslal, to by se ulozilo, pak kdy, reakci atd., tk by to nemusleo odpovidat presne
Navic si myslim, ze pokud bych to delal postupne, ze by to bylo casove narocnejsi, protoze by se to muselo vickrat prochazet od zacatku ten kod

Takto mam udelane po castech
$h1count = preg_match_all('/(<div class="box" id="post)(.*)(">)/i',$x,$patterns); //idprispevku
$h2count = preg_match_all('/(\<a href="profile.php\?id=)(.*)(<\/a>)/i',$x,$patterns2);  //user
$array = explode('"',$patterns2[2][0]);                                          //iduser
$h1count = preg_match_all('/(\<dd>Registrovaný:)(.*)(<\/dd>)/i',$x,$patterns);  //registrace
$h1count = preg_match_all('/(\<dd>Příspěvky:)(.*)(<\/dd>)/i',$x,$patterns);     //pocet prispevku
$h1count = preg_match_all('/(\<a href="#p)(.*) (class="reakce">)(.*)<\/a>/i',$x,$patterns);
$m = explode('"',$patterns[2][0]);                                              //reakce na

Snad je to aspon trochu srozumitelne, diky za pomoc

Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).

Moderátor Joker: Titulek „pomoc s regularnim vyrazem“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.

Moderátor Joker: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
peta
Profil
Proc si neupravis php kod fora, aby ti vytvoril csv format, data oddelena carkou v apostrofech?
Proc to prime nepresypavas databazovym prikazem do jine tabulky a chces to tahat z html kodu?
Takhle to budes mit strasne narocne tak, ci tak.
Co treba xml parser? http://cz2.php.net/xml_parse

talraith at withouthonor dot com 08-Jul-2004 11:40
An example of parsing an XML document:
<?php

// Use the method of your choice to load the XML document
// into a variable...  (a very generic sample follows)
$XML = '<root><section>This is my sample XML code</section></root>';

$xml = new xml_doc($XML);
$xml->parse();

// Access root level object
$my_tag = $xml->getTag(0,$name,$attributes,$cdata,$children);

?>

Tez ten priklad "michelek 26-Oct-2003 06:42" je zajimavy
A jeste jeden example: http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=128165#8

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0