如何从xml文件中显示单个项目?

时间:2022-03-08 04:37:18

I have this code: here

我有这个代码:这里

It's getting a 12 horoscopes descriptions. Using <?php echo $horoscope ?> - it show all (12) horoscopes descriptions.

这是一个12星座的描述。使用 - 它显示了所有(12)星座运势描述。

I need to show individual horoscopes like using: <? echo $Taurus ?> , <? echo $Virgo ?> and etc...

我需要展示个人占星术,如: , 等...

1 个解决方案

#1


0  

How about something like this (based on your pastebin code, I have not tested it fully):

这样的事情(基于你的pastebin代码,我没有完全测试):

<?php
$cachetime=0; // 12 Hours
$cachefile = 'cache/horoscope.txt';
if(!file_exists($cachefile) || filemtime($cachefile) < time() - $cachetime) {
    $xml = simplexml_load_file("http://www.vytautus.com/hor_rss.xml");  

    $horoscopes = array();
    foreach ($xml->channel->item as $item) {
        $horoscopes[(string)$item->title] = (string)$item->description;
    }
    file_put_contents($cachefile, serialize($horoscopes));
}
$horoscopes = unserialize(file_get_contents($cachefile));
?>

This code parses the rss file into an associative array with the horoscope names as the keys and the description as values. The array is then serialized and saved to a file. And unserialized into an array again when the file gets read.

此代码将rss文件解析为关联数组,其中占星名称为键,描述为值。然后将该数组序列化并保存到文件中。当文件被读取时,再次反序列化为数组。

Output of print_r($horoscopes) would be something like this:

print_r($ horoscopes)的输出将是这样的:

Array
(
    [Avinas] => Gali būti nelengva laikytis darbo drausmės bei išsaugoti gerus santykius. Pasistenkite kritiškai pažvelgti į save. Galbūt iš tiesų elgiatės nelabai atsakingai, nesilaikote pažadų, vėluojate pateikti informaciją ar į ją reaguoti?
    [Tauras] => Ryte venkite nesusipratimų, dviprasmybių. Ne laiku ir ne vietoje atliktas veiksmas ar ištartas žodis gali pakenkti. Būkite atsargesni ir atidesni kontaktuose bei viešose vietose - gresia vagystės, apgaulės.
    [Dvyniai] => Galimi laikini nesklandumai. Sužinosite apie kažkieno pastangas kai ką pakreipti jūsų nenaudai. Įsivaizduojamas gerbėjas ar susižavėjimo objektas gali jumis manipuliuoti. Pramoginė išvyka pareikalaus nenumatytų išlaidų.
    [Vėžys] => Šiandien labai svarbu visur jausti saiką ir atsakomybę. Įsigilinkite į situaciją be išankstinių nuostatų, objektyviai. Tai duos daugiau naudos nei skubėjimas šokti pagal kažkieno dūdelę ar momentines ambicijas. Tikėtini trikdžiai kelionėje.
    [Liūtas] => Jums itin rūpės karjeros bei turto reikalai. Pavojinga pasiduoti staiga kilusiai pagundai, gerai neištyrus situacijos bei perspektyvų. Neignoruokite artimo žmogaus nerimo, perspėjimų.
    [Mergelė] => Galite sulaukti keistų pasiūlymų, klaidinamos informacijos. Reikėtų atsargiai reaguoti į pasiūlymus daug ir greitai užsidirbti - įmanomos pinklės, apgaulės.
    [Svarstyklės] => Būsite nervingi, kupini kompleksų ar prietarų. Santykiuose, pokalbiuose stigs nuoširdumo, atvirumo, kiekvienas turės savų paslapčių. Sunkiai skirsite, kas tikra, o kas tėra vien jūsų subjektyvūs išsigalvojimai.
    [Skorpionas] => Šiandien labiau derinkitės prie aplinkybių, neskubėkite priimti atsakingų sprendimų, ypač susijusių su darbu, verslu, nekilnojamuoju turtu. Gaunama informacija gali būti netiksli, iškraipyta.
    [Šaulys] => Bus nelengva teisingai pasirinkti, nes peršami, giriami gali būti ne tie dalykai, kurie iš tikrųjų jums būtų naudingi ir perspektyvūs. Galbūt teks ką nors paremti pinigais, padengti nuostolį ar kitaip padėti.
    [Ožiaragis] => Tikriausiai šiandieną veltui mėginsite kažką pakeisti - susidursite su išsisukinėjimu, demagogija. Reikia ypatingo korektiškumo bendraujant, išsakant savo idėjas bei kritiką kitų atžvilgiu, antraip sulauksite slapto nepalankumo.
    [Vandenis] => Šiandien gali kilti keistų nesusipratimų. Galbūt naudosite neleistinus būdus siekdami pasipelnyti, o gal aplinkiniams pasirodys, kad jumis neverta pasitikėti dėl kitų priežasčių. Gali atsiskleisti veidmainystė, manipuliavimo faktas.
    [Žuvys] => Nepasiduokite lengvabūdiškų draugų įtakai, venkite atsitiktinių meilės nuotykių, rizikingų avantiūrų. Neteisingas situacijos įvertinimas neš nuostolius. Atkreipkite dėmesį į savo vaikų išdaigas bei pomėgius.
)

Then you can just echo like this:

那么你可以像这样回音:

echo $horoscopes['Avinas'];
echo $horoscopes['Tauras'];
echo $horoscopes['Dvyniai'];
...

#1


0  

How about something like this (based on your pastebin code, I have not tested it fully):

这样的事情(基于你的pastebin代码,我没有完全测试):

<?php
$cachetime=0; // 12 Hours
$cachefile = 'cache/horoscope.txt';
if(!file_exists($cachefile) || filemtime($cachefile) < time() - $cachetime) {
    $xml = simplexml_load_file("http://www.vytautus.com/hor_rss.xml");  

    $horoscopes = array();
    foreach ($xml->channel->item as $item) {
        $horoscopes[(string)$item->title] = (string)$item->description;
    }
    file_put_contents($cachefile, serialize($horoscopes));
}
$horoscopes = unserialize(file_get_contents($cachefile));
?>

This code parses the rss file into an associative array with the horoscope names as the keys and the description as values. The array is then serialized and saved to a file. And unserialized into an array again when the file gets read.

此代码将rss文件解析为关联数组,其中占星名称为键,描述为值。然后将该数组序列化并保存到文件中。当文件被读取时,再次反序列化为数组。

Output of print_r($horoscopes) would be something like this:

print_r($ horoscopes)的输出将是这样的:

Array
(
    [Avinas] => Gali būti nelengva laikytis darbo drausmės bei išsaugoti gerus santykius. Pasistenkite kritiškai pažvelgti į save. Galbūt iš tiesų elgiatės nelabai atsakingai, nesilaikote pažadų, vėluojate pateikti informaciją ar į ją reaguoti?
    [Tauras] => Ryte venkite nesusipratimų, dviprasmybių. Ne laiku ir ne vietoje atliktas veiksmas ar ištartas žodis gali pakenkti. Būkite atsargesni ir atidesni kontaktuose bei viešose vietose - gresia vagystės, apgaulės.
    [Dvyniai] => Galimi laikini nesklandumai. Sužinosite apie kažkieno pastangas kai ką pakreipti jūsų nenaudai. Įsivaizduojamas gerbėjas ar susižavėjimo objektas gali jumis manipuliuoti. Pramoginė išvyka pareikalaus nenumatytų išlaidų.
    [Vėžys] => Šiandien labai svarbu visur jausti saiką ir atsakomybę. Įsigilinkite į situaciją be išankstinių nuostatų, objektyviai. Tai duos daugiau naudos nei skubėjimas šokti pagal kažkieno dūdelę ar momentines ambicijas. Tikėtini trikdžiai kelionėje.
    [Liūtas] => Jums itin rūpės karjeros bei turto reikalai. Pavojinga pasiduoti staiga kilusiai pagundai, gerai neištyrus situacijos bei perspektyvų. Neignoruokite artimo žmogaus nerimo, perspėjimų.
    [Mergelė] => Galite sulaukti keistų pasiūlymų, klaidinamos informacijos. Reikėtų atsargiai reaguoti į pasiūlymus daug ir greitai užsidirbti - įmanomos pinklės, apgaulės.
    [Svarstyklės] => Būsite nervingi, kupini kompleksų ar prietarų. Santykiuose, pokalbiuose stigs nuoširdumo, atvirumo, kiekvienas turės savų paslapčių. Sunkiai skirsite, kas tikra, o kas tėra vien jūsų subjektyvūs išsigalvojimai.
    [Skorpionas] => Šiandien labiau derinkitės prie aplinkybių, neskubėkite priimti atsakingų sprendimų, ypač susijusių su darbu, verslu, nekilnojamuoju turtu. Gaunama informacija gali būti netiksli, iškraipyta.
    [Šaulys] => Bus nelengva teisingai pasirinkti, nes peršami, giriami gali būti ne tie dalykai, kurie iš tikrųjų jums būtų naudingi ir perspektyvūs. Galbūt teks ką nors paremti pinigais, padengti nuostolį ar kitaip padėti.
    [Ožiaragis] => Tikriausiai šiandieną veltui mėginsite kažką pakeisti - susidursite su išsisukinėjimu, demagogija. Reikia ypatingo korektiškumo bendraujant, išsakant savo idėjas bei kritiką kitų atžvilgiu, antraip sulauksite slapto nepalankumo.
    [Vandenis] => Šiandien gali kilti keistų nesusipratimų. Galbūt naudosite neleistinus būdus siekdami pasipelnyti, o gal aplinkiniams pasirodys, kad jumis neverta pasitikėti dėl kitų priežasčių. Gali atsiskleisti veidmainystė, manipuliavimo faktas.
    [Žuvys] => Nepasiduokite lengvabūdiškų draugų įtakai, venkite atsitiktinių meilės nuotykių, rizikingų avantiūrų. Neteisingas situacijos įvertinimas neš nuostolius. Atkreipkite dėmesį į savo vaikų išdaigas bei pomėgius.
)

Then you can just echo like this:

那么你可以像这样回音:

echo $horoscopes['Avinas'];
echo $horoscopes['Tauras'];
echo $horoscopes['Dvyniai'];
...