SHOW:
|
|
- or go back to the newest paste.
| 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); |
| 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 | - | global $pubsFile, $data, $pubsFileYears, $tmpPubsFile; |
| 42 | + | |
| 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 | } |