2013-10-10 5 views
0

У меня есть этот код: hereКак отображать отдельные элементы из xml-файла?

Он получает описание 12 гороскопов. Используя <?php echo $horoscope ?> - он показывает все (12) описания гороскопов.

Мне нужно, чтобы показать индивидуальные гороскопы, как с помощью: <? echo $Taurus ?>, <? echo $Virgo ?> и т.д ...

ответ

0

Как о чем-то вроде этого (на основе кода 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)); 
?> 

Этот код анализирует rss-файл в ассоциативном массиве с именами гороскопов в качестве ключей и описания в качестве значений. Затем массив сериализуется и сохраняется в файле. И снова не инициализируется в массив, когда файл читается.

Выход 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. 
) 

Тогда вы можете просто повторить, как это:

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

Я получаю эту ошибку: Warning: file_get_contents(): Имя файла не может быть пустым в /home/patiekal/domains/dayhoro.lt/public_html/wp-content/themes/dayhoro/index.php в строке 13 –

+0

Ну, проверьте свою переменную имени файла, тогда она, вероятно, пуста ... –

+0

Вы говорите о файле horoscope.txt ? Это находится в нужном месте /cache/horoscope.txt и имеет chmod 777 permisions. –

Смежные вопросы