Как отобразить только определенные данные из XML-файла в PHP с массивом с SimpleXML? - PullRequest
0 голосов
/ 28 октября 2018

Я нашел канал Atom, в котором отображаются все курсы валют по отношению к евро.Я совершенно новичок в XML-файлах, и поэтому я спрашиваю, как я могу отображать только несколько показателей (определенных в массиве), а не все показатели в файле PHP?

Вот мой код PHP(со ссылкой на исходный XML-файл):

<?php
$fichier = 'http://spreadsheets.google.com/feeds/list/0Av2v4lMxiJ1AdE9laEZJdzhmMzdmcW90VWNfUTYtM2c/1/public/basic';
$xml = simplexml_load_file($fichier);

$cur_arr = array('AED','CAD','USD');

foreach($xml as $entry){
    echo $entry->title.' '; 
    echo substr($entry->content, 8, 8).'<br /><br>';    
}
?>

Я бы хотел отображать только курсы валют, указанных в моем массиве (AED, CAD, USD).

1 Ответ

0 голосов
/ 28 октября 2018

Вы были очень близки, нужно было только применить in_array() и настроить параметры substr () (если вы не умышленно усекали десятичную длину).

Протестированный код:

$fichier = 'http://spreadsheets.google.com/feeds/list/0Av2v4lMxiJ1AdE9laEZJdzhmMzdmcW90VWNfUTYtM2c/1/public/basic';
$xml = simplexml_load_file($fichier);

$cur_arr = array('AED','CAD','USD');

foreach($xml as $entry){
    if (in_array($entry->title, $cur_arr)) {
        echo "<div>$entry->title : " , substr($entry->content, 8) , "</div>";
    }
}

Вывод:

AED : 4.196204158
CAD : 1.500774188
USD : 1.142446

Если вы хотите, чтобы все числа были «дополнены» нулями до определенного количества десятичных разрядов, используйте str_pad().

...