כמה וכמה פעמים נשאלת השאלה כיצד אפשר להציג את שערי מטבעות החוץ ב PHP ככה שזה יהיה על בסיס שער ערך מעודכן ומהיר.
הנה דוגמא לפונקציה הכי פשוטה לקבלת המידע מאתר בנק ישראל ולבצע פעולה פשוטה שתציג את שער המטבע בהתאם למה שמוגדר בבנק (הבנק מעדכן את זה תמיד ואתם לא תדרשו לעשות כלום, ברגע ששער מטבע החוץ יעודכן בבנק ישראל אתם תראו את השינויים אוטומטית).
הנה הסקריפט המלא:
<?php
/**
* Get currency rate based on the currency
* Var passed to the function
*
* Accepted vars are dollar, euro, pound, yen
*
* @param string $currency
* @return float
*/
function GetChangeRate( $currency = 'dollar' )
{
# Define vars used
$xml_object = new stdClass();
$url = 'http://www.bankisrael.gov.il/currency.xml';
$contents = '';
$rate = '';
$last_update = date('d/m/Y');
# Get xml data
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec ($ch);
curl_close ($ch);
# Create parser
$xml_object = simplexml_load_string($contents);
# What do we want to show?
switch ( $currency )
{
case 'dollar':
$rate = floatval($xml_object->CURRENCY[0]->RATE);
break;
case 'pound':
$rate = floatval($xml_object->CURRENCY[1]->RATE);
break;
case 'yen':
$rate = floatval($xml_object->CURRENCY[2]->RATE);
break;
case 'euro':
$rate = floatval($xml_object->CURRENCY[3]->RATE);
break;
default:
$rate = floatval($xml_object->CURRENCY[0]->RATE);
break;
}
# Get last updated time
if( $xml_object->LAST_UPDATE )
{
$last_update = strtolower($xml_object->LAST_UPDATE);
}
return array('rate' => $rate, 'last_update' => $last_update);
}
# Display
print_r(GetChangeRate('euro'));
מצורפת דוגמא לשימוש גם כן, כרגע הפונקציה תומכת ב דולר, אירו, ין, פאונד. ניתן כמובן להרחיב את זה לכל שאר המטבעות הנתמכות בבנק ישראל אבל את זה אני אשאיר לכל אלו שרוצים מעבר למה שמוצג למעלה. הקוד למעלה אמור לעבוד ברוב השרתים. דרושה ספריית CURL פעילה.
מה שזה יחזיר עכשיו זה מערך עם 2 אלמנטים אחד בשם rate שיחזיק את שער מטבע החוץ שבקשתם, והאלמנט השני בשם last_update יגיד מתי פעם אחרונה זה עודכן (זה יגיע ישירות מהקובץ של בנק ישראל, אז ברגע שהם יעדכנו אותו זה יתעדכן גם אצלכם אוטומטית).
אני יודע שזאת לא הדרך הטובה ביותר, גם לא היעילה ביותר אבל זה בהחלט מספק את הצרכים של אלו שרק רוצים להציג או להשתמש בשער המטבע הנכון.
Similar Posts
- None Found





תודה רבה !
אבל זה XML אז זה קליל
יש לי בעיה והיא כאשר אני רוצה להתחיל לעשות פרוייקט בPHP,אני לא יודע איך אני מתחיל,מהם השלבים שמהם מתחילים,תאכל לאמר לי מהם השלבים?
זה ממש תלוי בפרוייקט. מה שאתה מתכוון אליו נקרא אפיון, וזה כנראה אחד הדברים החשובים (אם לא הכי חשוב) בניהול פרוייקט נכון. פשוט תמפה את כל מה שאתה צריך לעשות, תרשום הכל ותפרט על כל דבר, אחר כך תנסה לראות מה צריך לבוא קודם ולהתחיל מהתחלה.
הפרויקט שכרגע אני נמצא בו , זה בניית CMS ולהתאים אותו לאתר שאני מתכנן.
אז איך לעשות את זה?
1.להכין לעצמי סכימה של הדברים,מה הולך להיות ואיך זה הולך להתבצע
2.לדאוג לעיצוב
3.לעבוד על הDB
4.להתחיל לתכנת
?
כן זו התחלה טובה, אבל לכל חלק ברשימה הזאת צריך לחלק אותו שוב לגורמים עד לפרטי פרטים, שתדע בידיוק מה אתה צריך לעשות, כמובן שעם הזמן ותוך כדי תכנות תמיד דברים משתנים וצריך להתאים את השאר בהתאם.
תודה רבה ואדים !
רציתי לישאול יש לך מדריך / מאמר שמראה איך לתכנן ולעשות טבלאות בצורה נכונה?כלומר איזה שדות לשים בטבלאות ועיניין הRELATIONSHIP,ניסיתי לחפש אבל לא מצאתי.
שוב תודה רבה !
אני אראה מה אפשר לכתוב בנוגע לזה.
חבל שהקוד לא מוזח..
אם התכוונת לזה שיהיה indention אז זה תוקן.
שלום לך ואדים
קראתי את מה שכתבת ולמדתי, לא רק בפוסט הזה. בכל אופן אחרי שהתחלתי לשחק עם זה וללמוד יותר את הפונקציות האלו בניתי אחת משלי. שעושה בדיוק אותו דבר רק יותר קצרה משמעותית.
אני ארשום אותה פה אבל מניח שלא תוצג טוב…
function getcurrency($coin = “dollar”) {
// Define url and get the XML into array
$url = “http://www.bankisrael.gov.il/currency.xml”;
$xml_arr = simplexml_load_file($url);
// Choose the coin
switch($coin) {
case “dollar”:
$rate = $xml_arr->CURRENCY[0]->RATE;
break;
case “pound”:
$rate = $xml_arr->CURRENCY[1]->RATE;
break;
case “yen”:
$rate = $xml_arr->CURRENCY[2]->RATE;
break;
case “euro”:
$rate = $xml_arr->CURRENCY[3]->RATE;
break;
case “canada”:
$rate = $xml_arr->CURRENCY[5]->RATE;
break;
default:
$rate = $xml_arr->CURRENCY[0]->RATE;
break;
}
$lastupdated = $xml_arr->LAST_UPDATE;
return array(“rate”=>$rate,”lastupdated”=>$lastupdated);
}
$dollar = getcurrency();
echo $dollar["rate"];
echo $dollar["lastupdated"];
תודה לך על הפוסטים המעניינים!