RSS reader
Энд амлaсныхаа дагуу хялбархан RSS уншигч хийцгээе. Сайндаа ч биш маргааш XML -ийн тухай хичээл орохдоо энэ жишээг бас үзүүлэх гэж байгаа юм. Сүүлийн үед газар сайгүй бараг бүх сайтууд RSS feed эсвэл ATOM гэх мэт линкүүдтэй болжээ. Энэ бол тухайн сайт дээр гарсан зүйлийг уг сайтруу орохгүй өөрийн уншигч програмаар уншаад байх боломжийг олгож байгаа хэрэг юм. Ийм уншигч програмууд бий. Жишээ нь би Mozilla Thunderbird-ийг е-майл клиент, feed reader-ээ болгон ашигладаг. Хялбар жишээнд ашиглах RSS нь миний энэ сайтынх болог. Үүний тулд сайтын RSS feedback -ийн URL -Ийг олно. Миний сайтын баруун дээр байгаа феедийн линк нь http://www.soyolerdene.com/index.php/feed гэж байна. Бидний зорилго бол үүнийг PHP ээр уншихад XML буцаж ирэх бөгөөд түүнийг нь форматын дагуу уншаад (parse) хийгээд дэлгэцэнд хэвлээд үзүүлэх явдал юм. Үүний тулд та бүхэн RSS -ийн XML ээр дүрслэгддэг форматыг мэддэг байх хэрэгтэй юм. Энэ тухай http://en.wikipedia.org/wiki/RSS_(file_format) хаягаар холбогдон дэлгэрэнгүй мэдээлэл аваарай. За ингээд хялбар жишээгээ PHP дээр хийе.
Юуны түрүүнд http://www.soyolerdene.com/index.php/feed хаягийг fopen функцээр нээн уншиж гарч ирсэн XML -ийг $str гэсэн хувьсагчид авъя. Код нь
1 2 3 4 5 6 7 8 | $url="http://www.soyolerdene.com/index.php/feed"; $str=""; $fp = @fopen($url, "r") or die("SoyolParser: $url file-iig neej chadsangyi !"); while($data = fread($fp, 8096)) { $str.=$data; } fclose($fp); |
Энэ жишээг өөрийн интернет холбоотой байгаа локаль сервер дээрээ (apache/php суулгасан компьютер) ажилуулж үзвэл тохиромжтой. Учир нь ихэнх хостууд fopen функцын URL нээхийг нь хаасан байдаг. Энэ тохиолдолд PHP -ийн CURL гэж сайхан санг ашиглан нээх боломжтой. Ингээд $str хувьсагчид XML -ийг уншаад авчихлаа. Одоо түүнийгээ парсинг хийгээд хэвлээд үзүүлчихвэл зорилго биелэгдлээ. Үүний тулд PHP simpleXML гэж үнэхээр симпле нэгэн сан ашиглая.
1 2 3 4 5 6 7 | $xml = new SimpleXMLElement($str); foreach ($xml->channel->item as $medee) { echo '<a href="'.$medee->link.'"><h2>'.$medee->title.'</h2></a>'; echo $medee->description; echo '<br /><br />'; } |
$xml = new SimpleXMLElement($str); гэж XML обьект үүсгээд түүнийгээ RSS -ийн бүтэцээр итерац хийн бүх бичлэгүүдийг гаргаж байна. foreach дотор байгаа $xml->channel->item бол RSS 2.0 ийн бүтэцийг илэрхийлж байна. Санаа нь xml доорхи бүтэцтэй байвал ингэж уншиж болох нь.
<rss> <channel> <item> </item> <item> </item> ... </channel> </rss>
Та бүхэн RSS 2.0 -ийн хамгийн энгийн форматыг харвал ийм байна. Харин $medee->link, $medee->title, $medee->description гэж хандаж байгаа нь item доторхи тагуудад хандаж байгаа байдал юм. item тус бүр нь доорхи бүтэцтэй байна.
<item> <title>Space Exploration</title> <link>http://liftoff.msfc.nasa.gov/</link> <description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a partial eclipse of the Sun on Saturday, May 31.</description> <pubdate>Fri, 30 May 2003 11:06:42 GMT</pubdate> <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid> </item>
Мөн $medee->pubDate гээд нийтлэсэн өдрийг ч гаргаж болох нь. Ингээд л болоо. Амархан байгаа биз.
Та нар өөрсдөө weather.com -оос цаг агаарын мэдээ унших гэх мэт зүйл хийж үзээрэй.
Энэ жишээг ажилуулж үзэх, кодыг татаж авах.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
Хэвлэх хувилбар
Найздаа илгээх


(6 votes, average: 4.00 out of 5)
hey ter ajluulj uzeh gdg dr chini darsan chini zugeer l html dr baahan bichtsen heden ymnuud bnashd. yg ene code oor unshaad haruulj bgaa ym yu ch alga bhiin? ter code iig tataj avaad html bolgood ajilluulsan chini bolohgui bna daa
кодыг татаж авах. ened bgaa code chini aldaatai bgaa ym bish u?
Хэ хэ. Ажилуулж үзэхээр чинь мэдээж HTML л гаргана шүү дээ. Яагаад гэвэл PHP код ажиллаад үр дүн нь HTML гаргана. Кодыг HTML болговол юу гэж ажиллах вэ дээ. Код ажиллаад HTML гаргах гэж байгаа юм чинь. Чиний мэдлэг энэ блогийг уншихад арай болоогүй байна.
Чиний код гээд байгаа чинь HTML биш. Чи HTML болгоод л ажиллуулах гэж үзээд байгаа бололтой. PHP код шүү дээ наадах чинь. Үүнийг ажиллуулахын тулд чамд веб сервер, php 2 хэрэгтэй.
Дашрамд хэлэхэд би энэ блогийг өөрийн хост дээр ажиллуулдаг тул бүх код энэ тэрээ тест хийгээд тавьдаг болно.
php code gdgiig ni medne l dee. Gehdee html eer php gee duudaad ajluulj bolno bizdee. medeej bi php suulgaad http://localhost/xampp/ dotroosoo duudaj ajluulj uzsen. bas server dr turshij uzsen. Bi esvel buruu hiigeed bh shig bna. Joohon delgerengui tailbarlaad uguuch. Bas neg asuuh ym bna. webiin nuur huudasnaas uur neg huudasruu orohguigeer ter huudasniihaa source code iig ni yaj hardiin bol?
XAMPP суулгасан байгаа бол c:\xampp\htdocs дотороо rss фолдер гэсэн үүсгээд энд байгаа кодыг татаж аваад задлаад түүн дотороо хуулаад http://localhost/rss/rss_reader.php гэж дуудахад ажиллах ёстой. Чи xampp суулгаад юм өөрчлөөгүй бол бол вебийн роот ө.х localhost гэхэд хандах фолдер чинь c:\xampp\htdocs байдаг. Ямар алдаа гараад байгааг нь явуулвал илүү юм хэлж болох байх.
Өөр хуудасны PHP эх кодыг нь шууд үзэх гэсэн ойлголт бол байхгүй харин HTML src кодыг авъя гэвэл PHP дээр бол CURL гэж сан байгаа түүнийг судлаад үзээрэй.
thanks bolj bna!
Good. Сайн веб хөгжүүлэгч болоорой.
/*
…
…
…
*/
ene dotor baigaa medeelliig yaj harah u. ene tag deer class gts bolohoor yaj zaaj ugdug ym bol. zaaj ugsun tag dotor zurag orson bol zurgiig ni bas haruuldiin boluu
div class = “coll” gtsn bol?
/* */ бол програмын кодонд бичсэн тайлбар юм. Иймд харагдахгүй байх ёстой юм.
bi uul /* */ ene dotor asuuh gsn ymaa garj magadgui gj bichsiin. taguud bsan bolhor shuugeed gargaagui bololtoi. Za ymr ch bsan weather.com oos tsag agaariin medee unshdag source hiinee. kk
div id = feedBody
gdg tag dotor baigaag harahiin tuld yaj bichih u?
$xml -> div_id_feedBoy as $medee gheer bolhguin
yun DIV bilee. Bi sain oilgohgyi baina
ter deer channel tag iin item dotorh medeelliig unshdag jisheetei adil. Hervee div tag ni dotroo id=”feedBoy” gsn baival yaj zaaj ugdug ym bol?
jishee ni
div id==”Texttitle” //haalltai gd bodchoorooi haalt hiiheer shuugeed bn
div id=”feedboy” //haalltai gd bodchoorooi
…
…
/div
/div
<div id="Texttitle">
<div id="feedBoy">
<p>unshih medeelel</p>
</div>
/div>
<div id="Texttitle">
<div id="feedBoy">
<p>unshih medeelel</p>
</div>
< /div>
za za bolchloo
DIV chini HTML -ийн элемент. RSS бол тодорхой форматтай XML бүтэц. Хэрвээ чи XML дотороо DIV гэсэн таг агуулж байгаа бол жаахан зохимжгүй байж магадгүй юм.
Сайнуу? Сайхан жишээ байна. Цаг агаар-г бол ингээд шийдчих юм байна. Баярлалаа… Монголын банкнуудаас rss-ээ тараадаг банк байнуу? Тэгвэл валютыг бас хийчихмээр байна. Хэхэхэ
Манайд веб сервис сайн хөгжихгүй л байна. Гэхдээ тун удахгүй байхаа.
Ene code deer xml filiin ehnii 3 n medeeg haruulahdaa yah we. Help me.
Яаж ч авч болно. Нэг тоолуур аваад 3 болсон байвал break хийчих
Harin yaj hiihuu adminaa
dawtalt ashiglasan bolowch bolohgui yum
Баагий чиний хийх гээд байгаа юм байна.
$i=1;
foreach ($xml->channel->item as $medee) {
echo ‘link.’”>’.$medee->title.’‘;
echo $medee->description;
echo ”;
if($i++==3) break;
}
Эхлээд i=1 гэсэ тоолуур аваад тэрийг давталт дотороо шалгана. Тэр шалгалт нь i++ гэж нэгээр нэмэгдүүлээд тэгээд тэр нь 3-тэй тэнцүү байгааг шалгаад хэрвээ тийм бол break коммандийг дуудсан байна. Энэ тохиолдолд давталыг таслан гарна. break, continue гээд 2 үйлдэк байдаг даа. Чиний хувьд ерөнхий програмчлалаа жаахан сайжируулах хэрэгтэй юм байна.
Thanks, harin tiimee, medehgui chadahgui zuil bwal asuuj bnaa
uuchlaarai oilogdogguie barag buh site deer iim um bhiim yg ymar uuregtei zuil we tegeed bas 1 zuil bn kompiter deeree xampp ashiglaad database uusgedeg shig uuriin webdee baaz uusgej boloh uu bolvol yaaj uusgeh yst ve
za yamarch bsan bayarlalaa Python helnii talaar medeelel nemeerei ho
hi ene ih goe jishee bna. Weather.com xml-n yamarshuu butetsteig ni yaj medeh uu
hi tanii rss-n jisheetei adilhanaar weather.com-s tsag agaariihan medeeg unshih gheer xml-g yamarhuu butetsteig ni meddegui ee butetsiig ni yaj medej unshih uu tuslaach pls!!!
hi saihan oilgomjtoi jishee bna weather.com-s duraarai unshij bolj bnaa
багшаа тааг гээд зүйлийг яаж авдаг юм бэ