שילוב תחזית מזג האויר באתר

  • הוסף לסימניות
  • #1
צהריים טובים,
אני מחפשת דרך יעילה לשלב את תחזית מזג האויר באתר.
השתמשתי במודול weather_block - אבל הביצועים שלו איטיים מאוד ומאטים את האתר.
אני רוצה לכתוב בעצמי מודול שלוקח את מזג האויר מקבצי ה XML של השרות המטוארולוגי
(לדוגמא: http://www.ims.gov.il/ims/PublicXML/isr_cities.xml)
אבל הקוד נכשל, נראה שהם לא נותנים הרשאות לקריאת/העתקת ה XML.
איך בכל אופן משתמשים בקבצי ה XML האלה? מישהו התנסה?

תודה רבה מראש!
 
  • הוסף לסימניות
  • #2
אף אחד לא התנסה בזה?
 
  • הוסף לסימניות
  • #3
וואו זה כבר באמת שיא!
הקפצה תוך 9 דקות!
 
  • הוסף לסימניות
  • #4
נכתב ע"י rivkic;1980701:
(לדוגמא: http://www.ims.gov.il/ims/PublicXML/isr_cities.xml)
אבל הקוד נכשל, נראה שהם לא נותנים הרשאות לקריאת/העתקת ה XML.
איך בכל אופן משתמשים בקבצי ה XML האלה? מישהו התנסה?


את נותנת קישור לXML פעיל (הוא נפתח בדפדפן). אז הוא לא חסום. הכל בסדר. חפשי טעות אצלך.
השאלה איך משתמשים בקבצי הXML האלה - היא שאלה כללית מדי. מציע לך לפרט מה ניסית לעשות ובאיזו בעיה נתקלת.
(לא יזיק גם אם תצייני באיזו שפה את כותבת)
 
  • הוסף לסימניות
  • #5
שפה: PHP
הפונקציה file_get_contents (ועוד פונקציות נוספות) החזירה ערך ריק, כשעל URL אחר היא החזירה תוצאה טובה.
חיפוש קצר בגוגל הראה לי שיכולה להיות לי חסימת הרשאה מצד האתר המארח (כלומר האתר שבו נמצא קובץ ה XML),
זה קצת מוזר לי - קובץ ה XML הזה נוצר עבור הזנות RSS, איך כן אני אמורה להשתמש בו בקוד?

תודה רבה מראש
 
  • הוסף לסימניות
  • #6
בדקתי, וגם אני לא מצליח לעשות בקשה משרת מקומי. רק משרת שנמצא באינטרנט. לא יודע למה זה...

על הדרך קצת שיחקתי עם זה אם זה עוזר לך...

PHP:
  <?php
$xml = simplexml_load_file('http://www.ims.gov.il/ims/PublicXML/isr_cities.xml');
$i=0;
foreach ($xml->Location as $l){
  $locations[$i][0] = $l->LocationMetaData;
  $locations[$i][1] = $l->LocationData;
  $i++;
}

foreach ($locations as $location){
 echo '<h3>' . $location[0]->LocationNameHeb .'</h3>';
  $location_data = $location[1];
  foreach ($location_data->TimeUnitData as $tud){   
    foreach ($tud->Element as $Element){
      $ElementName = str_replace(' ', '', $Element->ElementName);
      $tudElements[$ElementName] = $Element->ElementValue;
    }
    echo '<p>';
    echo 'תאריך: ' . $tud->Date . '<br>'; 
    echo 'טמפרטורה: ' . $tudElements[Minimumtemperature] . '&deg; - ' . $tudElements[Maximumtemperature] . '&deg;<br>'; 
    echo 'לחות: ' . $tudElements[Minimumrelativehumidity] . ' - ' . $tudElements[Maximumrelativehumidity] . '<br>'; 
    echo '</p>';
  }
}
?>

הנה מה שיצא לי:
http://josh.co.il/weather.php
 
  • הוסף לסימניות
  • #7
אם תשתמשי עם PHP, אני חושב שתצטרכי לעשות קאש, ולא לפנות לשירות בנפרד בשביל כל פתיחת דף. כי מן הסתם יחסמו את הIP של השרת אחרי מספר רב של בקשות ביום.

אני יכול גם להציע לך לטעון את הXML בצד הלקוח, על ידי JS.
 
  • הוסף לסימניות
  • #8
חשבתי לטעון את ה XML הזה פעמיים ביום.
טעינה בצד לקוח היא בהחלט רעיון טוב, אבל היא מונעת ממני את האפשרות לשמור את ה XML בקאש.
אולי באמת, אם לא אסתדר - אשתמש ברעיון הזה.
 
  • הוסף לסימניות
  • #9
כדאי לקחת בחשבון שטעינה בצד לקוח עלולה לגרום בעיות עם חברות הסינון השונות
 

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה