Advertisement
Guest User

pictures from national geographic

a guest
Jan 18th, 2012
487
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.35 KB | None | 0 0
  1. <?php
  2. //dab??jam no dropdown boxa xml faila linku. @ vajadz??gs, lai k????das pazi??ojumu nemet lauk??, jo pirmo reizi atverot, protams, ka
  3. //'name'neb??s defin??ts
  4. $xml_file=@$_POST['name'];
  5.  
  6. //skatamies, vai pirmo reizi lapa atv??rta.
  7. if (!isset($xml_file)) {$xml_file="/your-shot/dailydozen/feed";}
  8. //nor??dam lapu, no kuras tiks ieg??ta bil??u liste priek?? dropdown boxa
  9. $xmlLapa="http://ngm.nationalgeographic.com/your-shot/daily-dozen/";
  10. //nor??dam xml faila pilno atra??an??s vietu
  11. $xml_file = "http://ngm.nationalgeographic.com".$xml_file;
  12. //varb??t k??dam noder...
  13. echo "<br>".$xml_file."<br><br>";
  14.  
  15. //sagrie??am un dab??jam no lapas ??r?? tie??i to, ko mums vajaga - options sada??u.
  16. $xmlLapa = file_get_contents($xmlLapa) or die("Could not read file");
  17. $garums = strlen($xmlLapa);
  18. $saakums = strpos($xmlLapa, "<option");
  19. $beigas = strpos($xmlLapa, "</select");
  20. $options = substr($xmlLapa, $saakums, $beigas-$garums);
  21.  
  22. //nos??cam failu
  23.  
  24. //ats??cam vajadz??gos apskat??mos tegus - image, caption un yscredit
  25. $xml_photo_key = "*PHOTOGALLERY*PHOTO*IMAGE";
  26. $xml_caption_key = "*PHOTOGALLERY*PHOTO*CAPTION";
  27. $xml_author_key = "*PHOTOGALLERY*PHOTO*YSCREDIT";
  28. //defin??jam ieraksta mas??vu
  29. $story_array = array();
  30. //defin??jam skait??kli, kas skait??s ierakstus
  31. $counter = 0;
  32.  
  33. //izveidojam klasi par ierakstu, kur?? main??gie ir att??ls(image), apraksts(caption) un autors
  34. class xml_story{
  35.     var $image, $caption, $author;
  36. }
  37. //klas?? ir tr??s funkcijas.
  38. //pirm?? funkcija - starta tega atra??ana
  39. function startTag($parser, $data){
  40.     global $current_tag;
  41.     $current_tag .= "*$data";
  42. }
  43. //otr?? funkcija - beigu tega atra??ana
  44. function endTag($parser, $data){
  45.     global $current_tag;
  46.     $tag_key = strrpos($current_tag, '*');
  47.     $current_tag = substr($current_tag, 0, $tag_key);
  48. }
  49. //tre???? funkcija - satura atra??ana.
  50. function contents($parser, $data){
  51.     global $current_tag, $xml_photo_key, $xml_caption_key, $xml_author_key, $counter, $story_array;
  52.     switch($current_tag){
  53.  
  54.         case $xml_photo_key:
  55.             $story_array[$counter] = new xml_story();
  56.             $story_array[$counter]->image = $data;
  57.             break;
  58.  
  59.         case $xml_author_key:
  60.             $story_array[$counter]->author=$data;
  61.             break; 
  62.  
  63.         case $xml_caption_key:
  64.             $story_array[$counter]->caption = $data;
  65.             $counter++;
  66.            break;
  67.  
  68.         }
  69. }
  70.  
  71.  
  72. //uztaisam xml parseri
  73. $xml_parser = xml_parser_create();
  74. //palai??am parseri ???
  75. xml_set_element_handler($xml_parser, "startTag", "endTag");
  76.  
  77. xml_set_character_data_handler($xml_parser, "contents");
  78.  
  79.  
  80. $fp = fopen($xml_file, "r") or die("Could not open file");
  81. //it k?? var??tu iztikt bez file_get_contents un izmantot "fread", bet ??oreiz es pa????mu file_get_contents. $data k?? viens gar?? strings tagad.
  82. $data = file_get_contents($xml_file) or die("Could not read file");
  83.  
  84.  
  85. if(!(xml_parse($xml_parser, $data, feof($fp)))){
  86.     die("Error on line " . xml_get_current_line_number($xml_parser));
  87. }
  88.  
  89.  
  90. xml_parser_free($xml_parser);
  91.  
  92. //fclose($fp);
  93.  
  94. ?>
  95.  
  96. <html>
  97. <head>
  98. <title>National Geographic NGN Daily Dozen pictures</title>
  99.  
  100. <style type="text/css">
  101.  
  102.  
  103.   #menu {
  104.     position: fixed;
  105.     _position:absolute;
  106.     _top:expression(eval(document.body.scrollTop));
  107.     left:800px;
  108.     top:0px;
  109.     background-color: #d8da3d }
  110.    
  111.   #content {
  112.   font-family:verdana;
  113.  
  114.   font-size:11px;
  115.   background-color: #fcfcfc
  116.   top:0;
  117.   right:0;
  118.   width:60%;
  119.   }
  120.  </style>
  121.  
  122. </head>
  123. <body bgcolor="#FFFFFF" >
  124.  
  125.  <div id="menu">
  126.  <hr \>
  127. <form action="nga.php" method="post" name="formasName">
  128. <?php
  129. //select teg?? iek???? javaskripts - uz izmai??u konkr??to formu izpild??t Submit komandu.
  130. ?>
  131. <select name="name" onChange="document.forms['formasName'].submit()">
  132. <?php
  133. echo $options;
  134. ?>
  135. </select>
  136. </form>
  137. <hr \>
  138. </div>
  139.  
  140.  
  141.  <div id="content">
  142. <?php
  143. //datu izvad????ana no izveidot?? mas??va.
  144.  
  145.  
  146. for($x=0;$x<count($story_array);$x++){
  147.     echo "\t<h2><img src=\"http://ngm.nationalgeographic.com" . $story_array[$x]->image . "\"></h2>\n";
  148.     echo "\t\t\n";
  149.     echo "\t" . $story_array[$x]->caption . "<br>\n";
  150.     echo "\t<i>" . $story_array[$x] -> author ."</i>\n";
  151.     echo "<hr><br>";
  152. }
  153.  
  154.  
  155. //s??k??ks klases koda apraksts ??eitan - http://www.kirupa.com/web/xml_php_parse_intermediate.htm
  156. ?>
  157.  </div>
  158. </body>
  159. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement