View difference between Paste ID: mFWPT3GU and qCX3veE8
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
	}