نمایش وضعیت آب و هوا با PHP

  • آپدیت شده در تاریخ

نمایش وضعیت آب و هوا با PHP

در این آموزش php , قصد داریم به شما نحوه ساخت اپلیکیشن PHP برای نمایش اطلاعات پیش بینی آب و هوا (weather) توسط API در PHP را نشان بدیم.

من از سرویس OpenWeatherMap برا پیاده سازی سیستم نمایش وضعیت آب و هوا با PHP استفاده می کنم و فقط اطلاعات آب و هوا را از API دریافت و در اپ خودمان نشان می دهیم.

 

این سرویس یکی از بهترین API ها را برای پیش بینی آب و هوا ارایه می دهد. و شامل حجم عظیمی از داده های منظم شده آب و هوا را دارد.

همچنین این سرویس رایگان و البته با دسترسی محدود است. برای استفاده های ساده, می توانید کافی باشد و برای موارد پیشرفته نیاز است که یک اشتراک را تهیه کنید.

ادغام این API با اپلیکیشن PHP ما بسیا ساده اس چرا که ما فقط باید کار با curl در PHP و همچنین داده json را بلد باشیم.

مراحل زیر برای پیاده سازی نمایش وضعیت آب و هوا با PHP استفاده شده است.

  • دریافت کلید API
  • مشخص کردن آی دی شهر
  • ارسال درخواست پیش بینی آب و هوا با ارسال کلید API و id شهر

 

دریافت کلید API سرویس OpenWeatherMap

  1. برای دریافت API نیاز است در سایت OpenWeatherMap ثبت نام کنید. بعد شما به صفحه تنظیمات پروفایل هدایت (redirect) خواهید شد.
  2. بالای فرم تنظیمات پروفایل, یک منو با چندین تب وجود دارد. روی API Keys کلیک و کلید api را کپی کنید.
  3. در ادامه آموزش, از این API برای ارسال درخواست پیش بینی آب و هوا استفاده می کنیم.

نمایش وضعیت آب و هوا با PHP

دریافت id شهر

با کلیک روی لینک زیر, می توانید لیست شهرها را در فرمت فشرده دریافت کنید. فایل را unzip و id شهر را یاداشت کنید.

http://bulk.openweathermap.org/sample/city.list.json.gz

بعد از unzip کردن, یک فایل با فرمت داده ای json خواهید داشت که شامل آرایه مکان ها است. هر آرایه شامل مقادیر جغرافیایی, کشور, شهر و id شهر است.

کد PHP برای دریافت پیش بینی آب و هوا

این کد php درخواست را را به سرویس OpenWeatherMap برای دریافت پیش بینی آب و هوا ارسال می کند.هنگام ارسال درخواست, کلید API و id شهر نیز بصورت query string در url ارسال می شود.

من از curl در PHP برای ارسال درخواست API استفاده می کنم. پاسخ curl بصورت json برگشت داده می شود.

با دیکد کردن پاسخ JSON , می توانیم وضعیت آب و هوا را در مرورگر نمایش بدیم.

 

کد HTML نمایش وضعیت آب و هوا

این کد HTML برای نمایش وضعیت آب و هوا با PHP و دیکد کردن آبجکت پاسخ JSON استفاده شد است.

در این بخش, ما دسترسی به مکان, توضیحات آب و هوا, آیکون, محدوده (range) بالا و پایین دما, رطوبت و سرعت وزش باد را داریم.

 

خروجی – نمایش وضعیت آب و هوا با PHP

این یک خروجی از اجرا مثال بالا می باشد. که اطلاعات آب و هوا را با دیکد کردن پاسخ JSON از API را نمایش می دهد.

نمایش وضعیت آب و هوا با PHP

امیدوارم از آموزش نمایش وضعیت آب و هوا با PHP استفاده مفید را برده باشید.

برای دانلود سورس کد کامل از باکس دانلود زیر استفاده کنید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۷)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. محمود رنجبر ۲۳ خرداد ۱۴۰۰

    سلام دوباره مهندس شفیعی این رو میدونم وقتی قسمت free پنل مربوطه روی get api key کلیک میکنم یه صفحه میاد تو ضیحاتی داده ولی دکمه ای برای گرفتن api key مربوطه نیست این رو اگه میشه یه توضیحی بفرمائید
    عکس شو تو چت میفرستم ممنون از راهنمایی تون موفق باشید

    پاسخ
  2. محمود رنجبر ۲۳ خرداد ۱۴۰۰

    سلام مهندس شفیعی خسته نباشید من وقتی که تو سایت open weather map ثبت نام میکنم خودش یه api key میده برنامه شما هم خلاصه و هم کاربردیه بهترینه تو این زمینه
    اما مشکل من با این سایت اینه چطور api key مربوط به پیش بینی چند روزه رو درست کنیم وقتی پنل مربوط رو subscribe میکنم صفحه ای میاد و دکمه خاصی برای این موضوع نداره
    تو بخش api های خودم هم دکمه generate رو که میزنم اون api key که تو لید میشه اصلا معلوم نیست مربوط به چه پنلی هست و با بر نامه شما هم جواب نمیده در واقع با ثبت نام کردن همون api key که خودش داده با برنامه شما کار میکنه میشه راهنمایی کنید برای پیش بینی چند روز آینده چیکار باید کرد ؟

    پاسخ
    1. حسن شفیعی ۲۳ خرداد ۱۴۰۰

      سلام ممنون.
      در بخش https://openweathermap.org/api پلن های مختلف رو نشون میده

      پاسخ
  3. زینب ۲۸ بهمن ۱۳۹۸

    با سلام و خسته نباشین
    اگه بخایم اطلاعات هواشناسی رو با استفاده از مختصات یه مکان دریافت کنیم به جای آی دی چی؟؟
    چون این کد خیلی محدوده و مثلا فقط برای تهران رو به صورت کلی میگه.اگه بخام چهل تا نقطه ی تهران رو که مختصات هاش رو دارم اطلاعات آب و هواشناسیش رو به عنوان مثال دریافت کنم باید از چه کدی استفاده کنم. ممنون از راهنماییتون.

    پاسخ
    1. حسن شفیعی ۲۸ بهمن ۱۳۹۸

      سلام ممنون.
      کاری که در این اسکریپت انجام می دهیم استفاده از وب سرویس است. متاسفانه api خاصی برای این مورد سراغ نداریم و می توانید از طریق گوگل api مورد نیاز را جستجو کنید و این وب سرویسی که ارایه دادیم مناطق تهران رو شامل نمیشه.
      موفق باشید.

      پاسخ
      1. زینب ۲۹ بهمن ۱۳۹۸

        سلام دوباره.خیلی ممنونم از جوابتون.
        من یه سوال دیگه ام دارم که از دیروز باهاش درگیرم و راه های مختلفی رو امتحان کردم.این داده های آب و هوا شناسی رو چجوری میتونم هر کدوم رو به تنهایی اکو کنم تا تو پایگاه داده ام ذخیره بشه
        این نتیجه ی داده های منه:
        {“coord”:{“lon”:51.4,”lat”:35.65},”weather”:[{“id”:800,”main”:”Clear”,”description”:”clear sky”,”icon”:”01d”}],”base”:”stations”,”main”:{“temp”:281.32,”feels_like”:276.8,”temp_min”:277.15,”temp_max”:283.15,”pressure”:1029,”humidity”:46},”visibility”:6000,”wind”:{“speed”:3.1,”deg”:140},”clouds”:{“all”:0},”dt”:1582011440,”sys”:{“type”:1,”id”:7464,”country”:”IR”,”sunrise”:1581995940,”sunset”:1582035484},”timezone”:12600,”id”:110791,”name”:”Ostan-e Tehran”,”cod”:200}

        پاسخ
      2. حسن شفیعی ۲۹ بهمن ۱۳۹۸

        سلام. خوشحالیم که مفید واقع شده.
        این داده های json است که با آموزش زیر می توانید آن ها را واکشی و بعد که خروجی بصورت آبجکت یا آرایه شد می توانید به هر کدام از خانه ها به راحتی دسترسی و عملیاتی مثل ذخیره سازی در دیتابیس را انجام بدید.
        مدیریت داده jSON در php
        همچنین می توانید از این ابزار آنلاین برای مشاهده ساختار داده خود بصورت درختی استفاده کنید : http://jsonviewer.stack.hu
        موفق باشید.

        پاسخ
  4. مهسا ایرانی ۸ دی ۱۳۹۸

    من در حال حاضر یک فایل جیسون دارمو یک فایل php الان ادغام این ذو به چه صورت است میشه کامل تر بگین لطفا فایل اجرا نمیشه key رو تئقسمت کی کپی کردیم حال باید چه کنیم

    پاسخ
  5. الهام ۸ دی ۱۳۹۸

    ببخشی. چجوری باید کد رو جایگزین کنیم میشه دقیق تر بگین و بهد نصبxampp چجوری اجرا کنیم دقیقا برنامه رو تطبیق فاید جیسون و فایل php چجوریه

    پاسخ
    1. حسن شفیعی ۸ دی ۱۳۹۸

      سلام.
      برای کار با اسکریپت نیاز است بصورت مقدماتی با php آشنا باشید وگرنه راهنمایی بیشتر باعث ایجاد سوالات بیشتری برای شما می کند و طبیعتا به جواب نخواهید رسید.
      آموزش xampp و آموزش اجرای فایل php در xampp را در گوگل جستجو کنید. بعد از قرار دادن فایل ها در جای مشخص شده طبق این آموزش پیش برید و خروجی بگیرید.
      موفق باشید.

      پاسخ
  6. زهرا ۸ دی ۱۳۹۸

    بعد از نصب xampp چجوری بلید خروحی ببینیم و چگونه باید کد رو جایگزین کتیم
    من می تونم به عنوان کار خودم که کد رو نوشتم ارایه بدم ؟

    پاسخ
  7. زهرا ۸ دی ۱۳۹۸

    ببخشید میشه دقیق توصیح بدین چطوری باید برناما رو اجرا کنیمممم و به چه نرم افزاری نیاز داریم

    پاسخ
    1. حسن شفیعی ۸ دی ۱۳۹۸

      سلام.
      ابتدا باید مطابق آموزش در سایت مورد نظر ثبت نام و کد مربوطه رو دریافت کنید
      بعد نرم افزار xampp را دانلود و نصب کنید و سورس کامل را از باکس دانلود دریافت و مطابق این آموزش نصب و راه اندازی کنید تا بتونید نتیجه رو ببینید.
      راه اندازی لوکال هاست
      البته بعد نصب باید مطابق آموزش کدی که از سایت مورد نظر دریافت کردید را باید در سورس جایگزین کنید تا بشه نتیجه رو دید.
      موفق باشید.

      پاسخ
      1. زهرا ۸ دی ۱۳۹۸

        ببهشید من می تونم به عنوان کار ارایه بدم این کد رو ؟ و اینکه چجوری باید در سورس جایگزینش کنیم

        پاسخ
      2. زهرا ۸ دی ۱۳۹۸

        وچگونه باید اجرا شه بعد نصب xampp

        پاسخ
  8. aryan sa ۱۶ شهریور ۱۳۹۸

    CURLOPT_VERBOSE برای چیه ؟؟

    پاسخ
    1. حسن شفیعی ۱۶ شهریور ۱۳۹۸

      سلام.
      برای دریافت یک سری اطلاعات بیشتر از سروری که ریکویست ارسال می کنید استفاده میشه و معمولا هم در حالت دیباگ برا خطایابی استفاده می کنیم.

      پاسخ
دوره های آموزشی