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 | } |