Kyberia v1.0
[mirrors/Kyberia-bloodline.git] / admin / rssparser.php
CommitLineData
bc13d5d6
H
1<?php
2ini_set("include_path","/home/hromi1/kyberia/inc:/home/hromi1/kyberia/boxiky/");
3include_once("kyberia.inc");
4$kyberia = new CLASS_KYBERIA();
5
6function strip_http_headers($text) {
7 $text = str_replace("\r\n","\n",$text);
8 $pozice = strpos($text,"\n\n");
9 $text = trim(substr($text,$pozice+0,strlen($text)));
10 return $text;
11}
12
13function unhtmlspecialchars($str) {
14 $trans = get_html_translation_table(HTML_SPECIALCHARS);
15 $trans = array_flip($trans);
16 return strtr($str, $trans);
17}
18
19
20function steal($url) {
21 $url=str_replace("http://","",$url);
22 $i=strpos($url,"/");
23 $hostname=substr($url,0,$i);
24 $filename=substr($url,$i);
25 $fp = fsockopen ($hostname, 80, $errno, $errstr, 30);
26 if (!$fp) {
27 echo "$errstr ($errno)<br>\n";
28 } else {
29 fputs ($fp, "GET /$filename HTTP/1.0\r\nHost: $hostname\r\n\r\n");
30 while (!feof($fp)) {
31 $rssdata.= fgets ($fp,128);
32 }
33 fclose ($fp);
34 return $rssdata;
35 }
36
37}
38
39$rssdata=steal($_GET['datafeed']);
40$rssdata=strip_http_headers($rssdata);
41$rssdata=urldecode($rssdata);
42include_once("xml/xmlarray.inc");
43
44if (strstr($rssdata,"<rss")) $capsule="rss";
45if (strstr($rssdata,"<rdf:RDF")) $capsule="rdf:RDF";
46$parser = new xmlarray("",$capsule);
47$pole=$parser->parse($rssdata);
48print_r($pole);
49if (empty($pole['channel']['item'])) $pole['channel']['item']=$pole['item'];
50foreach ($pole['channel']['item'] as $item) {
51 echo $item['title']."<br>";
52 if (! empty($item["link"])) {
53 $md5=md5($item['link']);
54 $set=$kyberia->executeQuery("select * from rss_news where news_md5='$md5'");
55 if (!$set->getNumRows()) {
56 $q="INSERT INTO rss_news set news_source='3',";
57 $q.="news_title='".addSlashes(unhtmlspecialchars($item["title"]))."',";
58 $q.="news_url='".addSlashes(unhtmlspecialchars($item["link"]))."'";
59 $q.=",news_md5='$md5'";
60 echo "<br>";
61 echo "<a class=box href='",$item["link"],"'>";
62 echo $item["title"],"</a>\n";
63 if (!empty($item["description"])) {
64
65 $q.=",news_desc='".addSlashes(strip_tags(unhtmlspecialchars($item['description'])))."'";
66 echo "<br><b>",$item['description'],"</b><br>";
67 }
68 if (!empty($item['image'])) {
69 if (!empty($item['image']['title'])) $q.=",news_image_title='".addSlashes(unhtmlspecialchars($item['image']['title']))."'";
70
71 if (!empty($item['image']['link'])) $q.=",news_image_link='".addSlashes(unhtmlspecialchars($item['image']['link']))."'";
72 if (!empty($item['image']['url'])) $q.=",news_image='".addSlashes(unhtmlspecialchars($item['image']['url']))."'";
73 }
74
75 elseif (!empty($pole['image'])) {
76 $q.=",news_image_title='".addSlashes(unhtmlspecialchars($pole['image']['title']))."'";
77 $q.=",news_image_link='".addSlashes(unhtmlspecialchars($pole['image']['link']))."'";
78 $q.=",news_image='".addSlashes(unhtmlspecialchars($pole['image']['url']))."'";
79 }
80 else {
81 $q.=",news_image_title='".addSlashes(unhtmlspecialchars($pole['channel']['image']['title']))."'";
82 $q.=",news_image_link='".addSlashes(unhtmlspecialchars($pole['channel']['image']['link']))."'";
83 $q.=",news_image='".addSlashes(unhtmlspecialchars($pole['channel']['image']['url']))."'";
84 }
85
86
87 $kyberia->executeUpdate($q);
88
89 }
90 }
91}
92
93
94
95?>
This page took 0.13968 seconds and 4 git commands to generate.