Advertisement
Guest User

XML

a guest
Oct 27th, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. if (!ini_get('allow_url_fopen')) {
  3.     die();
  4. }
  5. $handle = fopen('http://www.cctld.uz/rss/', 'rb');
  6.  
  7. if ($handle) {
  8.     $rss = stream_get_contents($handle);
  9. }
  10. fclose($handle);
  11. define('PUBS_FILE_NAME', 'names.xml');
  12. if (is_file(PUBS_FILE_NAME)) {
  13.     if ($pubsFile = fopen(PUBS_FILE_NAME, 'rb')) {
  14.         $pubsFile = fread($pubsFile, filesize(PUBS_FILE_NAME));
  15.         if ($pubsFile) {
  16.             $pubsFile = new SimpleXmlElement($pubsFile, LIBXML_NOCDATA);
  17.         }
  18.     }
  19. } else {
  20.     $pubsFile = new DOMDocument("1.0", "UTF-8");
  21.     $pubsFile->formatOutput = true;
  22.     $tmpPubsFile = '';
  23. }
  24. $rss = new SimpleXmlElement($rss, LIBXML_NOCDATA);
  25.  
  26. if(isset($rss->channel->item)) parseRSS($rss);
  27.  
  28. function parseRSS($rss) {
  29.     global $pubsFile, $tmpPubsFile;
  30.     foreach ($rss->channel->item as $e) {
  31.         if ( stripos((string)$e->title[0], 'новые') !== false ) {
  32.             writeRssData($e->pubDate, $e->description);
  33.         }
  34.     }
  35.     # write data stored in $pubsFile variable
  36.    $pubsFile = new DOMDocument();
  37.     $pubsFile->loadXML($tmpPubsFile);
  38.     $pubsFile->save(PUBS_FILE_NAME);
  39. }
  40. function writeRssData($pubDate, $description){
  41.     global $pubsFile, $tmpPubsFile;
  42.     $day = date('d', strtotime($pubDate));
  43.     $month = date('F', strtotime($pubDate));
  44.     $year = date('Y', strtotime($pubDate));
  45.     if (isset($pubsFile->data)) {
  46.         # open & read
  47.         echo 'file';
  48.     } else {
  49.         if ($pubsFile->getElementById($pubDate) === NULL) {
  50.             $data = $pubsFile->getElementsByTagName('data')->item(0);
  51.             #if ($data->length == 0) {
  52.             if (!$data) {
  53.                 $data = $pubsFile->createElement("data");
  54.                
  55.             }
  56.             $pubsFile->appendChild($data);
  57.             #if ($pubsFileYears->length == 0){
  58.             $pubsFileYears = $pubsFile->getElementsByTagName('years')->item(0);
  59.             if (!$pubsFileYears){
  60.                 $pubsFileYears = $pubsFile->createElement('years');
  61.                 $pubsFileYearsId = $pubsFile->createAttribute('id');
  62.                 $pubsFileYearsId->value = 'years';
  63.                 $pubsFileYears->value = $pubsFileYearsId;
  64.                
  65.             }
  66.             $data->appendChild($pubsFileYears);
  67.  
  68.             $pubsFileYear = $pubsFile->getElementById($year);
  69.             if (!$pubsFileYear) {
  70.                 $pubsFileYear = $pubsFile->createElement('year');
  71.                 $pubsFileYearId = $pubsFile->createAttribute('id');
  72.                 $pubsFileYearId->value = $year;
  73.                 $pubsFileYear->appendChild($pubsFileYearId);
  74.             }
  75.             $pubsFileYears->appendChild($pubsFileYear);
  76.  
  77.             $pubsFileMonth = $pubsFile->getElementById(date('m', strtotime($pubDate)).'.'.$year);
  78.             if ($pubsFileMonth === NULL) {
  79.                 $pubsFileMonth = $pubsFile->createElement('month');
  80.                 $pubsFileMonthId = $pubsFile->createAttribute('id');
  81.                 $pubsFileMonthId->value = date('m', strtotime($pubDate)).'.'.$year;
  82.                 $pubsFileMonth->appendChild($pubsFileMonthId);
  83.             }
  84.             $pubsFileYear->appendChild($pubsFileMonth);
  85.  
  86.             $pubsFileDay = $pubsFile->createElement('day');
  87.             $pubsFileDayId = $pubsFile->createAttribute('id');
  88.             $pubsFileDayId->value = $day.'.'.date('m', strtotime($pubDate)).'.'.$year;
  89.             $pubsFileDay->appendChild($pubsFileDayId);
  90.  
  91.             $pubsFileDescription = $pubsFile->createTextNode($description);
  92.             $pubsFileDay->appendChild($pubsFileDescription);
  93.  
  94.             $pubsFileMonth->appendChild($pubsFileDay);
  95.  
  96.             $data->appendChild($pubsFileYears);
  97.  
  98.             $tmpPubsFile .= $data->ownerDocument->saveXML();
  99.             #$tmpPubsFile = $pubsFile->saveXML();
  100.             /*$pubsFile = new DOMDocument("1.0", "UTF-8");
  101.             $tmpPubsFile = $pubsFile->importNode($data, TRUE);
  102.             $pubsFile->appendChild($tmpPubsFile);*/
  103.             #$pubsFile->loadXML($tmpPubsFile);
  104.         }
  105.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement