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.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Použít DateTime a metodu format, replacovat znaky je chabé řešení
http://php.net/…e.format.php
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?
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');
?>
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
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');
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?
Zobrazeno 11 zpráv z 11.