{"id":754,"date":"2011-09-27T13:35:24","date_gmt":"2011-09-27T11:35:24","guid":{"rendered":"https:\/\/www.giannifavilli.it\/blog\/?p=754"},"modified":"2022-02-22T16:08:53","modified_gmt":"2022-02-22T15:08:53","slug":"parser-xml-php-googlemeteo","status":"publish","type":"post","link":"https:\/\/www.giannifavilli.it\/blog\/parser-xml-php-googlemeteo\/","title":{"rendered":"Parser da XML a PHP del File Meteo (Yahoo! Weather, Weather.com)"},"content":{"rendered":"\n<p>Dopo aver pubblicato il <a href=\"https:\/\/www.giannifavilli.it\/blog\/parser-xml-asp-googlemeteo\/\" target=\"_blank\" rel=\"noopener noreferrer\">Parser da XML a ASP di Google Meteo<\/a>\u00a0ecco che giunge il momento \u00a0di pubblicare il parser, del file XML messo a disposizione dal servizio di Google Meteo, tramite PHP.<\/p>\n<p>Per qualunque altra informazione fate riferimento all&#8217;articolo sopra riportato.<\/p>\n<p>Al file PHP consiglio di aggiungere un DIV con una classe predefinita e <a href=\"http:\/\/jquery.malsup.com\/cycle\/\" target=\"_blank\" rel=\"noopener noreferrer\">jQuery Cycle Plugin<\/a>\u00a0per dare degli effetti di rotazione alle nostre informazioni meteo.<br \/><!--more--><\/p>\n<div class=\"alert alert-error fade in\" style=\"text-align: center;\"><strong>Attenzione questo articolo non \u00e8 pi\u00f9 valido!<br \/><\/strong>I servizi che offrivano le previsioni sono stati chiusi ma puoi prendere spunto su come funziona il parsing per fartene uno tutto tuo o provare ad utilizzare <a href=\"https:\/\/openweathermap.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Open Weather Map.<\/a><br \/>Tutto l&#8217;articolo che segue \u00e8 da leggera a solo scopo didattico o per prendere spunto. gli esempi che seguono non funzioneranno.<\/div>\n<div class=\"alert alert-warning fade in\"><br \/>La varibile da modificare nell&#8217;esempio sotto \u00e8 <code>$ch = curl_init(\"...\");<\/code> e alcuni <em>nodi<\/em> del file xml.<br \/>Per utilizzare il servizio Yahoo! Weather<br \/><code>http:\/\/weather.yahooapis.com\/forecastrss?p=ITXX0067&amp;u=c<\/code><br \/>Per utilizzare il servizio Weather.com<br \/><code>http:\/\/wxdata.weather.com\/wxdata\/weather\/local\/ITXX0067?cc=*&amp;unit=m<\/code><br \/>La localit\u00e0 impostata \u00e8 Roma che equivale a <em>ITXX0067<\/em>. Per cambiare la localit\u00e0 dovete sostituire il codice soprariportato nell&#8217;URL. Per trovare il codice della localit\u00e0 a voi interessata vi consiglio di utilizzare i consiglio di utilizzare questo servizio, <a href=\"https:\/\/www.edg3.co.uk\/snippets\/weather-location-codes\/\" target=\"_blank\" rel=\"noopener noreferrer\">Weather Location Codes\/IDs<\/a>.<\/div>\n<p>Fondamentale, sul nostro server PHP deve essere abilitata l&#8217;estensione CURL!!!<\/p>\n<pre class=\"brush:php\"><!--?php\n\/\/ Catturiamo e salviamo il file XML sul nostro server per evitare alcuni problemi che possono verificarsi su alcuni server\n\/\/nella stringa curl_init inseriamo la localit\u00e0 desiderata in questo esempio \u00e8 Roma\n$ch = curl_init(\"http:\/\/www.google.com\/ig\/api?weather=Roma,italy&amp;hl=it\");\n$fp = fopen(\"weather.xml\", \"w\");\n\/\/Con la funzione CURL settimano i parametri in maniera che l'XML venga letto correttamente (encoding)\ncurl_setopt($ch, CURLOPT_USERAGENT, \"Mozilla\/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko\/20041001 Firefox\/0.10.1\");\ncurl_setopt($ch, CURLOPT_FILE, $fp);\ncurl_setopt($ch, CURLOPT_HEADER, 0);\ncurl_exec($ch);\ncurl_close($ch);\nfclose($fp);\n\n\/\/Leggiamo l'XML delle previsioni\n$xml = simplexml_load_file(\"weather.xml\");\n$current = $xml--->xpath(\"\/xml_api_reply\/weather\/current_conditions\");\n$forecast_list = $xml-&gt;xpath(\"\/xml_api_reply\/weather\/forecast_conditions\");\n\n\/*previsioni di oggi*\/\necho \"<\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/www.google.com&quot; . $current[0]-&gt;icon[\" alt=\"weather\" \/>&#8220;; echo &#8220;<br \/>Condizioni attuali: &#8221; . $current[0]-&gt;condition[&#8216;data&#8217;]; echo &#8220;<br \/>temp: &#8221; . $current[0]-&gt;temp_c[&#8216;data&#8217;] . &#8220;\u00b0C&#8221;; echo &#8220;<br \/>humidity: &#8221; . $current[0]-&gt;humidity[&#8216;data&#8217;]; echo &#8220;<br \/>wind: &#8221; . $current[0]-&gt;wind_condition[&#8216;data&#8217;] . &#8220;<\/p>\n<pre class=\"brush:php\">\";\n\n\/*previsioni prossimi giorni*\/\nforeach ($forecast_list as $forecast) {\n\necho \"<\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/www.google.com&quot; . $forecast-&gt;icon[\" alt=\"weather\" \/>&#8220;; echo &#8220;<br \/>;Previsione per: &#8221; . $forecast-&gt;day_of_week[&#8216;data&#8217;]; echo &#8220;<br \/>&#8221; . $forecast-&gt;condition[&#8216;data&#8217;]; echo &#8220;<br \/>temp: min &#8221; . $forecast-&gt;low[&#8216;data&#8217;] . &#8220;\u00b0C, max &#8221; . $forecast-&gt;high[&#8216;data&#8217;] . &#8220;\u00b0C&#8221;; echo &#8220;<\/p>\n<pre class=\"brush:php\">\";\n}\n?&gt;<\/pre>\n<p><strong>Un esempio visibile \u00e8 disponibile su questo sito:\u00a0<a href=\"http:\/\/www.carbonifera.it\" target=\"_blank\" rel=\"noopener noreferrer\">www.carbonifera.it<\/a><\/strong><\/p>\n<p>Vi auguro ancora buone previsioni a tutti!!!<\/p>\n\t<!--\n\t<div class=\"paga_box_sandbox\"><h4>In questo momento non fare donazioni, sto testando il sistema. Grazie!<\/h4>\t<p>Donazione per il mantenimento del blog<\/p>\n\t<form method=\"post\" name=\"paypal_form_donag_894\" action=\"https:\/\/www.sandbox.paypal.com\/cgi-bin\/webscr\">\n\t\t<input type=\"hidden\" name=\"business\" value=\"info@giannifavilli.it\" \/>\n\t\t<input type=\"hidden\" name=\"cmd\" value=\"_donations\" \/>\n\t\t<input type=\"hidden\" name=\"return\" value=\"http:\/\/www.giannifavilli.it\/blog\/grazie\/\" \/>\n\t\t<input type=\"hidden\" name=\"cancel_return\" value=\"http:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/754\" \/>\n\t\t<input type=\"hidden\" name=\"notify_url\" value=\"http:\/\/www.giannifavilli.it\/listen\/donazione_pp_ipn.php\" \/>\n\t\t<input type=\"hidden\" name=\"rm\" value=\"2\" \/>\n\t\t<input type=\"hidden\" name=\"currency_code\" value=\"EUR\" \/>\n\t\t<input type=\"hidden\" name=\"lc\" value=\"IT\" \/>\n\t\t<input type=\"hidden\" name=\"cbt\" value=\"Grazie! Premi qui per torna sul blog\" \/>\n\t\t<input type=\"hidden\" name=\"item_name\" value=\"Donazione per il mantenimento del blog Gianni Favilli\" \/>\n\t\t<div style=\"text-align:center; width:100%; margin: auto;\">\n\t\t<select class=\"\" name=\"amount\" id=\"amount\" style=\"margin: auto;\">\n\t\t\t<option value=\"1\">Offrimi un Caff\u00e8 - 1 Euro<\/option>\n\t\t\t<option value=\"3\">Offrimi un Aperitivo - 3 Euro<\/option>\n\t\t\t<option value=\"5\">Offrimi una Birra - 5 Euro<\/option>\n\t\t\t<option value=\"15\">Offrimi una Pizza - 15 Euro<\/option>\n\t\t\t<option value=\"25\">Offrimi una Cena - 25 Euro<\/option>\n\t\t<\/select>\n\t\t<\/div>\n\t\t<!\/\/\/\/--<input type=\"hidden\" name=\"custom\" value=\"\" \/>-\/\/\/\/->\n\t\t<input type=\"hidden\" name=\"custom\" value=\"DonazioneGenericaGF\" \/>\n\t\t<input type=\"hidden\" name=\"no_note\" value=\"1\" \/>\n\t\t<input class=\"pulsantepp\" type=\"image\" src=\"https:\/\/www.paypalobjects.com\/it_IT\/IT\/i\/btn\/btn_donateCC_LG.gif\" name=\"submit\" alt=\"PayPal - Il metodo rapido, sicuro e affidabile per fare donazioni.\" \/>\n\t<\/form>\n\t<\/div>\n\t-->\n\t\n","protected":false},"excerpt":{"rendered":"<p>Dopo aver pubblicato il Parser da XML a ASP di Google Meteo\u00a0ecco che giunge il momento \u00a0di pubblicare il parser, del file XML messo a disposizione dal servizio di Google Meteo, tramite PHP. Per qualunque altra informazione fate riferimento all&#8217;articolo sopra riportato. Al file PHP consiglio di aggiungere un DIV con una classe predefinita e jQuery Cycle Plugin\u00a0per dare degli effetti di rotazione alle nostre informazioni meteo.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[17],"tags":[29,28,43,26],"class_list":["post-754","post","type-post","status-publish","format-standard","hentry","category-programmazione","tag-google","tag-parse","tag-php","tag-xml"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4SGGs-ca","_links":{"self":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/comments?post=754"}],"version-history":[{"count":0,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/754\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/media?parent=754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/categories?post=754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/tags?post=754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}