Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.

Diskuze: Záměna znaků z XML souboru

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
tbartolen
Člen
Avatar
tbartolen:25.10.2017 22:34

Ahoj, mám takovýto kód. Když si ho dáte do IDE tak vám vygeneruje tabulku. Problém je, že bych rád zaměnil pomlčky v datumu za tečky, ale nemám ponětí jak to udělat. Nevíte?

Děkuju za radu

                <div id="primary" class="content-area">
                        <div id="content" class="site-content" role="main">
<div class="svazTabulky">
<TABLE>
    <TR>
        <th colspan="9">Soupiska Přebor mladších žáků 2017-2018</th>
    </TR>
  <TR>
    <TD nowrap>Jmeno</TD>
    <TD nowrap>Přijmení</TD>

  </tr>
        <?php
        // put your code here

    $xml = simplexml_load_file('http://www.hokejbal.cz/xml/2017-2018/3202007.xml');

    foreach($xml->SOUTEZ as $soutez ){
        if($soutez['id_sou'] != 231 ) continue;
        foreach($soutez->PLAYER as $player){
        $prijmeni = $player->PRIJMENI;



            ?>
            <tr>
                <td><?=$player->JMENO?></td>
                <td><?=$player->PRIJMENI ?></td>
                <td><?=$player->DAT_NAR?></td>

              </tr>
            <?php

        }

        break;
    }

?>
</TABLE>
    <p>Data převzata z <a href="http://hokejbal.cz"> hokejbal.cz</a></p>
</div>
                        </div><!-- #content .site-content -->
                </div><!-- #primary .content-area -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
}

}
Odpovědět
25.10.2017 22:34
Navštiv www.fb.com/skkelticz
Avatar
Nahoru Odpovědět
25.10.2017 23:47
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Odpovídá na tbartolen
Dominik Gavrecký:26.10.2017 11:05

Pomohlo ti to ?

Nahoru Odpovědět
26.10.2017 11:05
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Odpovídá na tbartolen
Neaktivní uživatel:26.10.2017 16:47

Použít DateTime a metodu format, replacovat znaky je chabé řešení
http://php.net/…e.format.php

Nahoru Odpovědět
26.10.2017 16:47
Neaktivní uživatelský účet
Avatar
tbartolen
Člen
Avatar
Odpovídá na Neaktivní uživatel
tbartolen:26.10.2017 16:54

Tohle nefunguje

$xml = simplexml_load_file('http://www.hokejbal.cz/xml/2017-2018/3202007.xml');

    foreach($xml->SOUTEZ as $soutez ){
        if($soutez['id_sou'] != 231 ) continue;
        foreach($soutez->PLAYER as $player){
        $prijmeni = $player->PRIJMENI;
        $datumNarozeni = $player->DAT_NAR;
        $datumNarozeni = strtr($datumNarozeni,"-", ".");


            ?>

Použít DateTime a metodu format, replacovat znaky je chabé řešení
http://php.net/…e.format.php

Jenže ja to datum beru z XML, nevím, jestli to je psaný metodou DATE...mužu to i tak upravovat?

Nahoru Odpovědět
26.10.2017 16:54
Navštiv www.fb.com/skkelticz
Avatar
Odpovídá na tbartolen
Neaktivní uživatel:26.10.2017 16:56

Pokud je v nějakém rozumném formátu, tak úplně v pohodě.

<?php
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>

Ve tvém případě tedy

<?php
$date = new DateTime($player->DAT_NAR);
echo $date->format('m. d. Y');
?>
Editováno 26.10.2017 16:58
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
26.10.2017 16:56
Neaktivní uživatelský účet
Avatar
tbartolen
Člen
Avatar
tbartolen:26.10.2017 16:58

No ja vím, ale nevím, jak si jako z XML kdy mám tenhle kod

$xml = simplexml_load_file('http://www.hokejbal.cz/xml/2017-2018/3202007.xml');

    foreach($xml->SOUTEZ as $soutez ){
        if($soutez['id_sou'] != 231 ) continue;
        foreach($soutez->PLAYER as $player){
        $prijmeni = $player->PRIJMENI;
        $datumNarozeni = $player->DAT_NAR;
        $datumNarozeni = strtr($datumNarozeni,"-", ".");


            ?>

Tak jak mam editovat proměnou datumNarozeni ktera bere z XML PLAYER hodnotu DAT_NAR pres funkci DATE, jako že nějak takhle?

 $datumNarozeni = $date;
$date = date_format($date, 'd/m/Y H:i:s');

Nemužu odstranit tenhle přispěvek

Editováno 26.10.2017 17:01
Nahoru Odpovědět
26.10.2017 16:58
Navštiv www.fb.com/skkelticz
Avatar
Odpovídá na tbartolen
Neaktivní uživatel:26.10.2017 17:02

Tohle zahodíš (skoro by to fungovalo, kdybys to ukládat zpět do $player->DAT_NAR a ne do $datumNarozeni. I tak je to ale špatné řešení)

$datumNarozeni = $player->DAT_NAR;
$datumNarozeni = strtr($datumNarozeni,"-", ".");

a použiješ místo toho něco takového

$date = new DateTime($player->DAT_NAR);
$player->DAT_NAR = $date->format('m. d. Y');
Editováno 26.10.2017 17:03
Nahoru Odpovědět
26.10.2017 17:02
Neaktivní uživatelský účet
Avatar
tbartolen
Člen
Avatar
Odpovídá na Neaktivní uživatel
tbartolen:26.10.2017 17:06

už mi to funguje, výsledek vypadá nějak takhle

 foreach($xml->SOUTEZ as $soutez ){
        if($soutez['id_sou'] != 231 ) continue;
        foreach($soutez->PLAYER as $player){
        $prijmeni = $player->PRIJMENI;
        $date = new DateTime ($player->DAT_NAR);



            ?>
            <tr>
                <td><?=$player->JMENO?></td>
                <td><?=$player->PRIJMENI ?></td>
                <td><?php echo $date ->format('m. d. Y');?></td>

              </tr>
            <?php

        }

        break;
    }

?>

Ještě tě zneužiju na jednu hovadinku, pokud mi to XML dává i hodinu čas a minutu, a je to vše v 00:00:00 mužu nějak zakázat zobrazení toho času, ale nechat zobrazení datumu?

Nahoru Odpovědět
26.10.2017 17:06
Navštiv www.fb.com/skkelticz
Avatar
Odpovídá na tbartolen
Neaktivní uživatel:26.10.2017 17:11

Tady by se nikde čas zobrazovat neměl.

Nahoru Odpovědět
26.10.2017 17:11
Neaktivní uživatelský účet
Avatar
tbartolen
Člen
Avatar
Odpovídá na Neaktivní uživatel
tbartolen:26.10.2017 18:00

=) tady ne, udělám nový topic

Nahoru Odpovědět
26.10.2017 18:00
Navštiv www.fb.com/skkelticz
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 11 zpráv z 11.