Êáëþò Þñèáôå óôï forum ìáò! Ãéá íá óõììåôÜó÷åôå óôéò óõæçôÞóåéò èá ðñÝðåé íá åßóáóôå ìÝëïò. Ãßíåôå ìÝëïò ôþñá!.
Moderators:
PHP Moderators, Super-Moderators, WebDev Moderators
| ÁðïóôïëÝáò | ÌÞíõìá |
Insurer
 ÌÝëïò áðü: 13 Áðñ 2009 ÂïçèÞìáôá: 1 Ìçíýìáôá: 244Ðåñéï÷Þ: Áêñïêåñáýíéá ¼ñç
|
Óôéò: 09 Éïõë 2012 14:48 ÈÝìá:
Weather Feeds, XML Parser ÐåñéãñáöÞ èÝìáôïò: XML Parser ãéá weather xml feeds |
|
|
Å÷èÝò øÜ÷íïíôáò ãéá êÜðïéï site ìå ðñïãíþóåéò êáéñïý Ýðåóá åðÜíù óå Ýíá ðïõ äßíåé äùñåÜí feeds, ôï http://www.worldweatheronline.com. ÐÞñá ôï API key, êáé âñÞêá ôïí ôñüðï ãéá ôï get ð÷. ãéá ÁèÞíá http://free.worldweatheronline.com/feed/weather.ashx?q=Athens,Greec...ey=×××××××××××××× . Ôï èÝìá åßíáé ðùò áõôü ìðïñþ íá ôï âÜëù óôçí óåëßäá ìïõ, êÜðïõ äéÜâáóá ðùò ôï êÜíåéò ìå xml parser áëëÜ äåí êáôÜëáâá êáé ðïëëÜ. ÕðÜñ÷åé êÜðïéïò ðïõ Ý÷åé áó÷ïëçèåß ìå ôï èÝìá ? Ðþò èá ìðïñïýóá íá ðñïâÜëù ôá feeds óôçí óåëßäá ìïõ?
Åõ÷áñéóôþ
|
|
|
|
Rapid-eraser
WebDev Moderator  ÌÝëïò áðü: 05 Áðñ 2003 ÂïçèÞìáôá: 2 ÍÝá: 2 Ìçíýìáôá: 256+Ðåñéï÷Þ: ÐåéñáéÜò
|
Óôéò: 09 Éïõë 2012 16:16 ÈÝìá:
|
|
|
Ôï api ôïõò Ý÷åé äõíáôüôçôá íá óïõ äþóåé feed óå ìïñöÞ JSON ðïõ åßíáé ðéï äéá÷åéñßóçìç. ÊÜíåéò óôá data Ýíá json_decode êáé ôá ðáßñíåéò óå ìïñöÞ PHP array.
http://free.worldweatheronline.com/feed/weather.ashx?q=Athens,Greec...=2&key=XXXXXX
Èá óïõ äþóåé Ýíá output ôýðïõ :
| êþäéêáò: |
{ "data": { "current_condition": [ {"cloudcover": "25", "humidity": "39", "observation_time": "12:42 PM", "precipMM": "0.0", "pressure": "1010", "temp_C": "33", "temp_F": "91", "visibility": "10", "weatherCode": "116", "weatherDesc": [ {"value": "Partly Cloudy" } ], "weatherIconUrl": [ {"value": "http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png" } ], "winddir16Point": "NE", "winddirDegree": "40", "windspeedKmph": "30", "windspeedMiles": "19" } ], "request": [ {"query": "Athens, Greece", "type": "City" } ], "weather": [ {"date": "2012-07-09", "precipMM": "0.0", "tempMaxC": "34", "tempMaxF": "93", "tempMinC": "23", "tempMinF": "74", "weatherCode": "113", "weatherDesc": [ {"value": "Sunny" } ], "weatherIconUrl": [ {"value": "http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png" } ], "winddir16Point": "NNE", "winddirDegree": "14", "winddirection": "NNE", "windspeedKmph": "24", "windspeedMiles": "15" }, {"date": "2012-07-10", "precipMM": "0.0", "tempMaxC": "35", "tempMaxF": "95", "tempMinC": "23", "tempMinF": "74", "weatherCode": "113", "weatherDesc": [ {"value": "Sunny" } ], "weatherIconUrl": [ {"value": "http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png" } ], "winddir16Point": "NNE", "winddirDegree": "22", "winddirection": "NNE", "windspeedKmph": "17", "windspeedMiles": "11" } ] }} |
Áí ðÜëé èåò íá óçíå÷ßóåéò óôïí äñüìï ôïõ XML èá ÷ñåéáóôåßò êÜôé ôýðïõ : simplexml _________________ Cu, Rapid-eraser, Tá áãáèÜ copies êôþíôáé.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high
|
|
|
|
Insurer
 ÌÝëïò áðü: 13 Áðñ 2009 ÂïçèÞìáôá: 1 Ìçíýìáôá: 244Ðåñéï÷Þ: Áêñïêåñáýíéá ¼ñç
|
|
|
|
fafos
Script Master  ÌÝëïò áðü: 30 Íïå 2004 ÂïçèÞìáôá: 17 Scripts: 6 Ìçíýìáôá: 256+
|
Óôéò: 09 Éïõë 2012 16:37 ÈÝìá:
|
|
|
Gia arxh prepei na gnorizeis oti to parse ton dedomenon exei kapoia oria.. to sygkekrimeno exei 500 queries ana ora alla to poly kathe 15 lepta na kaleis to xml ths idias polhs.. Auto shmainei oti prepei na ftiaxeis ena cron job to opoio tha sozei to xml ston server sou kathe XX lepta (opou XX pano apo 15).. me liga logia tha kaleis ena arxeio to opio tha sozei me curl h allo tropo to/ta xml se kapoion fakelo tou site sou..
ypothetoume oti sozeis ta dedomena ths athinas ston fakelo "weatherXml" kai me onoma "athens.xml"...
me thn xrhsh ths simplexml arxizeis na pairneis ta dedomena:
| êþäéêáò: | //pairnoume ta dedomena tou arxeiou
$weatherxml = file_get_contents( 'weatherXml/athens.xml' );
//ta pairnei h simple xml
$weaXml = new SimpleXMLElement( $weatherxml ); |
To sygkekrimeno xml dinei tis synthikes pou epikratoun tora kai provlepsh 2 hmeron (shmera kai aurio)...
Kairikes synthikes tora:
| êþäéêáò: | //**** synthikes tora***//
//ora enhmeroshs
$weaTime = $weaXml->current_condition->observation_time;
//thermokrasia C
$weaTempC = $weaXml->current_condition->temp_C;
//thermokrasia F
$weaTempF = $weaXml->current_condition->temp_F;
//Eikona
$weaIcon = $weaXml->current_condition->weatherIconUrl;
//Synthikes se keimeno
$weaText = $weaXml->current_condition->weatherDesc;
//taxythta anemou se milia
$weaWindSpeedM = $weaXml->current_condition->windspeedMiles;
//taxythta anemou se xiliometra
$weaWindSpeedK = $weaXml->current_condition->windspeedKmph;
//dieuthysnh anemou
$weaWindDir = $weaXml->current_condition->winddir16Point;
//Vroxoptosh se mm
$weaPrec = $weaXml->current_condition->precipMM;
//Ygrasia %
$weaHum = $weaXml->current_condition->humidity;
//Oratothta se xlm
$weaVis = $weaXml->current_condition->visibility;
//Piesh (Varometriko) se milibar
$weaPres = $weaXml->current_condition->pressure;
//Kalypsh Nefon %
$weaCloud = $weaXml->current_condition->cloudcover; |
kai me mia loopa pairnoume ta dedomena gia kathe hmera provlepshs:
| êþäéêáò: |
//**** provlepsh shmerinhs kai epomenon hmeron ***//
//loopa gia na paroume thn kathe hmera provlepshs
foreach ( $weaXml->weather as $forecast )
{
//hmeromhnia
$forDate = $forecast->date;
//megisth thermokrasia C
$forTempHighC = $forecast->tempMaxC;
//megisth thermokrasia F
$forTempHighF = $forecast->tempMaxF;
//xamhloterh thermokrasia C
$forTempLowC = $forecast->tempMinC;
//xamhloterh thermokrasia F
$forTempLowF = $forecast->tempMinF;
//taxythta anemou se milia
$forWinSpeedM = $forecast->windspeedMiles;
//taxythta anemou se xiliometra
$forWinSpeedK = $forecast->windspeedKmph;
//dieuthynsh anemou
$forWinDir = $forecast->winddirection;
//Eikona
$forIcon = $forecast->weatherIconUrl;
//synthikes se keimeno
$forText = $forecast->weatherDesc;
//vroxoptosh se mm
$forPrec = $forecast->precipMM;
} | _________________ Ïé ðÜíåò êáé ïé ðïëéôéêïß ðñÝðåé íá áëëÜæïíôáé óõ÷íÜ ãéá ôïí ßäéï ëüãï...
|
|
|
|
Rapid-eraser
WebDev Moderator  ÌÝëïò áðü: 05 Áðñ 2003 ÂïçèÞìáôá: 2 ÍÝá: 2 Ìçíýìáôá: 256+Ðåñéï÷Þ: ÐåéñáéÜò
|
Óôéò: 09 Éïõë 2012 16:42 ÈÝìá:
|
|
|
ÈÝëåé ëßãï ðñïãñáììáôéóìü ðïõ ìÜëëïí äåí èåò íá êÜíåéò
Èá ÷ñçóéìïðïéÞóåéò ôçí file_get_contents ãéá íá öÝñåéò ôá data local,
óôçí óõíÝ÷åéá èá êÜíåéò decode ôï json óå array ìå ôçí json_decode
Èá ðÜñåéò Ýôóé Ýíá array óå php ðïõ èá Ý÷åéò üôé data èåò íá äåßîåéò.
ÅíäéÜìåóá ðñïöáíþò üðùò åðéóÞìáíå ï Fafos , èá ðñÝðåé íá cachareis ëßãï ôá data óïõ ãéá íá ìçí ÷ôõðÜò óõíÝ÷åéá óå êÜèå request ôï service. ð÷ óå êÜðïéá mysql/textfile/keyValStorage(Memcache) _________________ Cu, Rapid-eraser, Tá áãáèÜ copies êôþíôáé.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high
|
|
|
|
Insurer
 ÌÝëïò áðü: 13 Áðñ 2009 ÂïçèÞìáôá: 1 Ìçíýìáôá: 244Ðåñéï÷Þ: Áêñïêåñáýíéá ¼ñç
|
Óôéò: 09 Éïõë 2012 16:53 ÈÝìá:
|
|
|
Äåí åßíáé üôé äåí èÝëù íá êÜíù ðñïãñáììáôéóìü, áëëÜ äåí îÝñù íá êÜíù. Ïìïëïãþ íüìéæá Þôáí ðéï áðëü  . Èá êÜôóù íá ôï äïõëÝøù ëßãï ìå ôá óôïé÷åßá ðïõ äþóáôå.
Åõ÷áñéóôþ êáé ôïõò äõï ãéá ôïí ÷ñüíï óáò
|
|
|
|
Rapid-eraser
WebDev Moderator  ÌÝëïò áðü: 05 Áðñ 2003 ÂïçèÞìáôá: 2 ÍÝá: 2 Ìçíýìáôá: 256+Ðåñéï÷Þ: ÐåéñáéÜò
|
|
|
|
kapoios001
ÌÝëïò áðü: 17 Öåâ 2011 ÂïçèÞìáôá: 3 Scripts: 1 Ìçíýìáôá: 256+
|
|
|
|
Insurer
 ÌÝëïò áðü: 13 Áðñ 2009 ÂïçèÞìáôá: 1 Ìçíýìáôá: 244Ðåñéï÷Þ: Áêñïêåñáýíéá ¼ñç
|
|
|
|
|
Ôþñá åßíáé 22 Ìáç 2013 03:35 | All times are UTC + 3 (DST in action)
|