Guest User

XML

a guest
Oct 27th, 2013
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.51 KB | None | 0 0
  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. #if(isset($rss->entry)) parseAtom($rss);
  28.  
  29. function parseRSS($rss) {
  30.     global $pubsFile, $tmpPubsFile;
  31.     foreach ($rss->channel->item as $e) {
  32.         if ( stripos((string)$e->title[0], 'новые') !== false ) {
  33.             writeRssData($e->pubDate, $e->description);
  34.         }
  35.     }
  36.     # write data stored in $pubsFile variable
  37.    $pubsFile = new DOMDocument();
  38.     $pubsFile->loadXML($tmpPubsFile);
  39.     $pubsFile->save(PUBS_FILE_NAME);
  40. }
  41. function writeRssData($pubDate, $description){
  42.     global $pubsFile, $data, $pubsFileYears, $tmpPubsFile;
  43.     $day = date('d', strtotime($pubDate));
  44.     $month = date('F', strtotime($pubDate));
  45.     $year = date('Y', strtotime($pubDate));
  46.     if (isset($pubsFile->data)) {
  47.         # open & read
  48.         echo 'file';
  49.     } else {
  50.         if ($pubsFile->getElementById($pubDate) === NULL) {
  51.             $data = $pubsFile->getElementsByTagName('data')->item(0);
  52.             #if ($data->length == 0) {
  53.             if (!$data) {
  54.                 $data = $pubsFile->createElement("data");
  55.                
  56.             }
  57.             $pubsFile->appendChild($data);
  58.             #if ($pubsFileYears->length == 0){
  59.             $pubsFileYears = $pubsFile->getElementsByTagName('years')->item(0);
  60.             if (!$pubsFileYears){
  61.                 $pubsFileYears = $pubsFile->createElement('years');
  62.                 $pubsFileYearsId = $pubsFile->createAttribute('id');
  63.                 $pubsFileYearsId->value = 'years';
  64.                 $pubsFileYears->value = $pubsFileYearsId;
  65.                
  66.             }
  67.             $data->appendChild($pubsFileYears);
  68.  
  69.             $pubsFileYear = $pubsFile->getElementById($year);
  70.             if (!$pubsFileYear) {
  71.                 $pubsFileYear = $pubsFile->createElement('year');
  72.                 $pubsFileYearId = $pubsFile->createAttribute('id');
  73.                 $pubsFileYearId->value = $year;
  74.                 $pubsFileYear->appendChild($pubsFileYearId);
  75.             }
  76.             $pubsFileYears->appendChild($pubsFileYear);
  77.  
  78.             $pubsFileMonth = $pubsFile->getElementById(date('m', strtotime($pubDate)).'.'.$year);
  79.             if ($pubsFileMonth === NULL) {
  80.                 $pubsFileMonth = $pubsFile->createElement('month');
  81.                 $pubsFileMonthId = $pubsFile->createAttribute('id');
  82.                 $pubsFileMonthId->value = date('m', strtotime($pubDate)).'.'.$year;
  83.                 $pubsFileMonth->appendChild($pubsFileMonthId);
  84.             }
  85.             $pubsFileYear->appendChild($pubsFileMonth);
  86.  
  87.             $pubsFileDay = $pubsFile->createElement('day');
  88.             $pubsFileDayId = $pubsFile->createAttribute('id');
  89.             $pubsFileDayId->value = $day.'.'.date('m', strtotime($pubDate)).'.'.$year;
  90.             $pubsFileDay->appendChild($pubsFileDayId);
  91.  
  92.             $pubsFileDescription = $pubsFile->createTextNode($description);
  93.             $pubsFileDay->appendChild($pubsFileDescription);
  94.  
  95.             $pubsFileMonth->appendChild($pubsFileDay);
  96.  
  97.             $data->appendChild($pubsFileYears);
  98.  
  99.             $tmpPubsFile .= $data->ownerDocument->saveXML();
  100.             #$tmpPubsFile = $pubsFile->saveXML();
  101.             /*$pubsFile = new DOMDocument("1.0", "UTF-8");
  102.             $tmpPubsFile = $pubsFile->importNode($data, TRUE);
  103.             $pubsFile->appendChild($tmpPubsFile);*/
  104.             #$pubsFile->loadXML($tmpPubsFile);
  105.         }
  106.     }
Advertisement
Add Comment
Please, Sign In to add comment