IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
svanda777
Tvůrce
Avatar
svanda777:21.1.2015 21:22

Ahoj,
vytvořil jsem funkci která, získá suplování pro naší třídu. Kód mi funguje. Toto vlákno jsem založil z toho důvodu, že se mi kód zná až příliš složitý a zajímalo by mně, zda-li by se to dalo vyřešit nějak efektivněji.

public function getSubstitute() {
        $code = $this->curlGetContents();
        $lineWithSubstitute = "<td class=\"td_supltrid_3\" width=\"11%\"><p>  " . $this->class . "</p></td>";
        if (!mb_strpos($code, $lineWithSubstitute)) {
            return "HI";
        }
        preg_match('~<tr>
    <td class="td_supltrid_3" width="11%"><p>  ' . $this->class . '</p></td>
(.+?)<tr>
    <td class="td_supltrid_3" width="11%"><p>  ~s', $code, $out);
        $substitute = substr($out[0], 0, StrRPos($out[0], "<tr>"));
        $vstup = preg_replace('~</tr>~', '', $substitute);
        $radky = explode("<tr>", $vstup);
        unset($radky[0]);
        foreach ($radky as $index => $radek) {
            $radek = preg_replace('~</p>~', '', $radek);
            $radek = preg_replace('~</td>~', '', $radek);
            $sloupce = explode("<td", $radek);
            unset($sloupce[0]);
            foreach ($sloupce as $ind => $bunka) {
                $zaznam = substr($bunka, StrRPos($bunka, ">") + 1, strlen($bunka));
                $zaznam = ltrim($zaznam);
                $sloupce[$ind] = rtrim($zaznam);
            }
            unset($sloupce[1]);
            $suplovani[$index] = $sloupce;
        }
        return $suplovani;
    }

Ještě <a href="http://­www.itnetwork­.cz/dev-lighter/493">př­ikládám</a> vstupní soubor.

Výstup by měl vypadat nějak takto.

Array
(
    [1] => Array
        (
            [2] => 2.hod
            [3] => Aj
            [4] => AJ2
            [5] => (U32)
            [6] => supluje
            [7] => Růžičková Václava
            [8] => (Mi)
        )

    [2] => Array
        (
            [2] => 4.hod
            [3] => D
            [4] => Fj
            [5] => (U22)
            [6] => supluje
            [7] => Jahn Vítězslav
            [8] => (Sa)
        )

    [3] => Array
        (
            [2] => 5.hod
            [3] => Čj
            [4] => Fj
            [5] => (U22)
            [6] => supluje
            [7] => Čáslavská Eliška
            [8] => (Sa)
        )

)
 
Odpovědět
21.1.2015 21:22
Avatar
Odpovídá na svanda777
Martin Konečný (pavelco1998):21.1.2015 21:44

Ahoj,

neměli by to ve formátu XML?
Možná bych zkusil použít DOMDocument, ten by to mohl vytahat snáz a přehledněji, než při použití hromady preg_replace, strpos atd :)

Nahoru Odpovědět
21.1.2015 21:44
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
svanda777
Tvůrce
Avatar
svanda777:21.1.2015 21:45

Bohužel neměli. :-) Myslíš, že bys mi mohl poslat nějaký příklad, jak by se to dělalo pomocí DOMDocument?

PS: Zapomněl jsem označit odpověď Martin Konečný (pavelco1998)

Editováno 21.1.2015 21:47
 
Nahoru Odpovědět
21.1.2015 21:45
Avatar
Ori I
Člen
Avatar
Odpovídá na svanda777
Ori I:22.1.2015 7:55

napríklad niečo takéto (má tam chyby, ale písať saa mi to celé rovno funkčné nechcelo)

http://www.binarytides.com/…domdocument/

 
Nahoru Odpovědět
22.1.2015 7:55
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.