Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //dab??jam no dropdown boxa xml faila linku. @ vajadz??gs, lai k????das pazi??ojumu nemet lauk??, jo pirmo reizi atverot, protams, ka
- //'name'neb??s defin??ts
- $xml_file=@$_POST['name'];
- //skatamies, vai pirmo reizi lapa atv??rta.
- if (!isset($xml_file)) {$xml_file="/your-shot/dailydozen/feed";}
- //nor??dam lapu, no kuras tiks ieg??ta bil??u liste priek?? dropdown boxa
- $xmlLapa="http://ngm.nationalgeographic.com/your-shot/daily-dozen/";
- //nor??dam xml faila pilno atra??an??s vietu
- $xml_file = "http://ngm.nationalgeographic.com".$xml_file;
- //varb??t k??dam noder...
- echo "<br>".$xml_file."<br><br>";
- //sagrie??am un dab??jam no lapas ??r?? tie??i to, ko mums vajaga - options sada??u.
- $xmlLapa = file_get_contents($xmlLapa) or die("Could not read file");
- $garums = strlen($xmlLapa);
- $saakums = strpos($xmlLapa, "<option");
- $beigas = strpos($xmlLapa, "</select");
- $options = substr($xmlLapa, $saakums, $beigas-$garums);
- //nos??cam failu
- //ats??cam vajadz??gos apskat??mos tegus - image, caption un yscredit
- $xml_photo_key = "*PHOTOGALLERY*PHOTO*IMAGE";
- $xml_caption_key = "*PHOTOGALLERY*PHOTO*CAPTION";
- $xml_author_key = "*PHOTOGALLERY*PHOTO*YSCREDIT";
- //defin??jam ieraksta mas??vu
- $story_array = array();
- //defin??jam skait??kli, kas skait??s ierakstus
- $counter = 0;
- //izveidojam klasi par ierakstu, kur?? main??gie ir att??ls(image), apraksts(caption) un autors
- class xml_story{
- var $image, $caption, $author;
- }
- //klas?? ir tr??s funkcijas.
- //pirm?? funkcija - starta tega atra??ana
- function startTag($parser, $data){
- global $current_tag;
- $current_tag .= "*$data";
- }
- //otr?? funkcija - beigu tega atra??ana
- function endTag($parser, $data){
- global $current_tag;
- $tag_key = strrpos($current_tag, '*');
- $current_tag = substr($current_tag, 0, $tag_key);
- }
- //tre???? funkcija - satura atra??ana.
- function contents($parser, $data){
- global $current_tag, $xml_photo_key, $xml_caption_key, $xml_author_key, $counter, $story_array;
- switch($current_tag){
- case $xml_photo_key:
- $story_array[$counter] = new xml_story();
- $story_array[$counter]->image = $data;
- break;
- case $xml_author_key:
- $story_array[$counter]->author=$data;
- break;
- case $xml_caption_key:
- $story_array[$counter]->caption = $data;
- $counter++;
- break;
- }
- }
- //uztaisam xml parseri
- $xml_parser = xml_parser_create();
- //palai??am parseri ???
- xml_set_element_handler($xml_parser, "startTag", "endTag");
- xml_set_character_data_handler($xml_parser, "contents");
- $fp = fopen($xml_file, "r") or die("Could not open file");
- //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.
- $data = file_get_contents($xml_file) or die("Could not read file");
- if(!(xml_parse($xml_parser, $data, feof($fp)))){
- die("Error on line " . xml_get_current_line_number($xml_parser));
- }
- xml_parser_free($xml_parser);
- //fclose($fp);
- ?>
- <html>
- <head>
- <title>National Geographic NGN Daily Dozen pictures</title>
- <style type="text/css">
- #menu {
- position: fixed;
- _position:absolute;
- _top:expression(eval(document.body.scrollTop));
- left:800px;
- top:0px;
- background-color: #d8da3d }
- #content {
- font-family:verdana;
- font-size:11px;
- background-color: #fcfcfc
- top:0;
- right:0;
- width:60%;
- }
- </style>
- </head>
- <body bgcolor="#FFFFFF" >
- <div id="menu">
- <hr \>
- <form action="nga.php" method="post" name="formasName">
- <?php
- //select teg?? iek???? javaskripts - uz izmai??u konkr??to formu izpild??t Submit komandu.
- ?>
- <select name="name" onChange="document.forms['formasName'].submit()">
- <?php
- echo $options;
- ?>
- </select>
- </form>
- <hr \>
- </div>
- <div id="content">
- <?php
- //datu izvad????ana no izveidot?? mas??va.
- for($x=0;$x<count($story_array);$x++){
- echo "\t<h2><img src=\"http://ngm.nationalgeographic.com" . $story_array[$x]->image . "\"></h2>\n";
- echo "\t\t\n";
- echo "\t" . $story_array[$x]->caption . "<br>\n";
- echo "\t<i>" . $story_array[$x] -> author ."</i>\n";
- echo "<hr><br>";
- }
- //s??k??ks klases koda apraksts ??eitan - http://www.kirupa.com/web/xml_php_parse_intermediate.htm
- ?>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement