Cache yahoo weather and yahoo currency

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Kleidi
Forum Newbie
Posts: 11
Joined: Thu Mar 04, 2010 5:06 pm

Cache yahoo weather and yahoo currency

Post by Kleidi »

Hello to everyone!
I have a yahoo weather script and a yahoo currency script in my site but they are taking too much time to load and are slowing my site. Can someone help me to made them caching and refreshing cache every 3600 minutes?

yahoo weather

Code: Select all

<?php
function retrieveYahooWeather($zipCode="92832") {
    $yahooUrl = "http://weather.yahooapis.com/forecastrss";
    $yahooZip = "?p=$zipCode";
    $temp = "&u=c"; // Grade Celsius
    $yahooFullUrl = $yahooUrl . $yahooZip . $temp;
    $curlObject = curl_init();
    curl_setopt($curlObject,CURLOPT_URL,$yahooFullUrl);
    curl_setopt($curlObject,CURLOPT_HEADER,false);
    curl_setopt($curlObject,CURLOPT_RETURNTRANSFER,true);
    $returnYahooWeather = curl_exec($curlObject);
    curl_close($curlObject);
    return $returnYahooWeather;
}
$localZipCode = "ALXX0002"; // Tirane
$weatherXmlString = retrieveYahooWeather($localZipCode);
$weatherXmlObject = new SimpleXMLElement($weatherXmlString);
$currentCondition = $weatherXmlObject->xpath("//yweather:condition");
$currentTemperature = $currentCondition[0]["temp"];// temperatura
$currentDescription = $currentCondition[0]["text"];// teksti
$currentImage = $currentCondition[0]["code"]; // kodi - perdoret per te marre fotografine/ikonen nga yahoo
$currentAstronomy= $weatherXmlObject->xpath("//yweather:astronomy");
$currentSunrise = $currentAstronomy[0]["sunrise"]; // lindja djellit
$currentSunset = $currentAstronomy[0]["sunset"]; // perendimi djellit
$currentForecast = $weatherXmlObject->xpath("//yweather:forecast");
$currentHigh = $currentForecast[0]["high"]; // temp me e larte e dites
$currentLow = $currentForecast[0]["low"]; // tem me e ulet e dites
?>
* P.S. How to change the time format from ex: 8:21 pm to 20:21?


yahoo currency

Code: Select all

// Funksionet per kembimin valutor

// Kembimi Euro - Leke
function kv_euro () {
$from   = 'EUR'; /*change it to your required currencies */
$to     = 'ALL';
$url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X';
$handle = @fopen($url, 'r');

if ($handle) {
    $result = fgets($handle, 4096);
    fclose($handle);
}
$allData = explode(',',$result); /* Get all the contents to an array */
$kveuro = $allData[1];
echo round($kveuro, 2); // round($dollarValue, 2); - Rrumbullakos shumebn me 2 shifra pas presjes. Ne gjendje normale $dollarValue
}

// Kembimi Dollare - Leke
function kv_dollare () {
$from   = 'USD'; /*change it to your required currencies */
$to    = 'ALL';
$url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X';
$handle2 = @fopen($url, 'r');

if ($handle2) {
    $result2 = fgets($handle2, 4096);
    fclose($handle2);
}
$allData2 = explode(',',$result2); /* Get all the contents to an array */
$kvdollare = $allData2[1];
echo round($kvdollare, 2); // round($dollarValue, 2); - Rrumbullakos shumebn me 2 shifra pas presjes. Ne gjendje normale $dollarValue
}

// Kembimi Paund - Leke
function kv_gbp () {
$from   = 'GBP'; /*change it to your required currencies */
$to    = 'ALL';
$url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X';
$handle3 = @fopen($url, 'r');

if ($handle3) {
    $result3 = fgets($handle3, 4096);
    fclose($handle3);
}
$allData3 = explode(',',$result3); /* Get all the contents to an array */
$kvgbp = $allData3[1];
echo round($kvgbp, 2); // round($dollarValue, 2); - Rrumbullakos shumebn me 2 shifra pas presjes. Ne gjendje normale $dollarValue
}
Hope that someone can help me! Thank you in advance!
Post Reply