{"id":114,"date":"2012-07-07T08:59:34","date_gmt":"2012-07-07T06:59:34","guid":{"rendered":"http:\/\/webowiec.net\/blog\/?p=114"},"modified":"2015-04-07T11:09:24","modified_gmt":"2015-04-07T09:09:24","slug":"php-wyswietlanie-rss-na-stronie-internetowej","status":"publish","type":"post","link":"https:\/\/webowiec.net\/blog\/php-wyswietlanie-rss-na-stronie-internetowej\/","title":{"rendered":"[php] wy\u015bwietlanie RSS na stronie internetowej"},"content":{"rendered":"<p>Prosty i funkcjonalny skrypt PHP <strong>wy\u015bwietlaj\u0105cy kana\u0142 RSS dowolnej strony internetowej<\/strong>.<\/p>\n<p>Dodatkowo kod JavaScript do wy\u015bwietlania RSS na stronach z systemami CMS (PHPfusion, Joomla), blogami, forami dyskusyjnymi, itp.<br \/>\n<!--more--><\/p>\n<p>&nbsp;<br \/>\n<strong>INSTALACJA SKRYPTU NA SERWERZE:<\/strong><br \/>\n1. Rozpakuj skrypt i przenie\u015b\u0107 folder <strong>RSS<\/strong> do g\u0142\u00f3wnego katalogu na FTP.<br \/>\n2. Nadaj prawa dost\u0119pu (chmod) <strong>777<\/strong> na folder <strong>RSS<\/strong>.<br \/>\n3. Na stronie internetowej umie\u015b\u0107 kod:<br \/>\n[html]<br \/>\n<!-- ?limit=8 \/\/ ile wy\u015bwietli\u0107 link\u00f3w\n     &limit_zn=30 \/\/ ile znak\u00f3w w 1 linku\n     &u=https:\/\/webowiec.net\/blog\/feed\/ \/\/ adres URL do kana\u0142u RSS \/\/--><br \/>\n<script type=\"text\/javascript\" src=\"\/rss\/php_js.php?limit=8&#038;limit_zn=30&#038;u=https:\/\/webowiec.net\/blog\/feed\/\"><\/script><br \/>\n[\/html]<br \/>\n4. Stylizacja CSS: linki umieszczone s\u0105 jako lista &lt;ul class=&#8221;RSSlink&#8221;&gt; z poszczeg\u00f3lnymi pozycjami\/linkami jako &lt;li&gt;. Zobacz: <a href=\"https:\/\/webowiec.net\/blog\/kurs-css-dla-niecierpliwych-cz-12\/\" title=\"Kurs CSS dla niecierpliwych\">jak u\u017cywa\u0107 RSS<\/a> <\/p>\n<p><u>Poni\u017cej szczeg\u00f3\u0142owe HOW-TO wraz z komentarzami.<\/u><\/p>\n<p>W pierwszej kolejno\u015bci ustalamy i filtrujemy zmienne przekazywane do skryptu PHP:<br \/>\n[php]<br \/>\n\/\/ $_GET[u] &#8211; adres URL do kana\u0142u RSS<br \/>\nif (empty($_GET[u])) die(&#8216;wprowadz adres rss!&#8217;);<br \/>\n$_GET[u] = urldecode($_GET[u]);<br \/>\n$url_p = @parse_url($_GET[u]);<br \/>\nif (empty($url_p[host])) die(&#8216;bledny adres RSS!&#8217;);<\/p>\n<p>\/\/ $_GET[limit] &#8211; limit wy\u015bwietlanych pozycji\/link\u00f3w RSS<br \/>\n$ile_url = (int)preg_replace(&#8216;\/^0-9\/i&#8217;,&#8221;,$_GET[limit]);<br \/>\nif (! ($ile_url>0 &#038; $ile_url<=10)) $ile_url = 10;\n\n\/\/ $_GET[limit_zn] - limit znak\u00f3w w linku\n$limit_zn = (int)preg_replace('\/^0-9\/i','',$_GET[limit_zn]);\nif (! ($limit_zn>0 &#038; $limit_zn<=200)) $limit_zn = 0;\n[\/php]\n\n\nW kolejnej cz\u0119\u015bci musimy zapewni\u0107 funkcjonalno\u015b\u0107 skryptu jako JavaScript:\n[php]\n\/\/ wy\u015bwietlanie skryptu php jako javascript\nheader(\"Content-type: text\/javascript; charset=UTF-8\");\n[\/php]\n\n\nTeraz pora na funkcj\u0119 pobieraj\u0105c\u0105 o zapisuj\u0105c\u0105 kana\u0142 RSS lokalnie w folderze RSS:\n[php]\n\/\/ pobierz i zapisz \u017ar\u00f3d\u0142o RSS\n\tfunction get_zrodlo($url){\n\t\t$url_md5 = md5($url);\n\t\tif ( is_file($url_md5.'.tmp') ) {\n\t\t\tif ( (time()-filemtime($url_md5.'.tmp'))>60*60 ) {<br \/>\n\t\t\t \tunlink($url_md5.&#8217;.tmp&#8217;);<br \/>\n\t\t\t\tget_zrodlo($url);<br \/>\n\t\t\t} else {<br \/>\n\t\t\t\t$r = file_get_contents($url);<br \/>\n\t\t\t}<br \/>\n\t\t} else {<br \/>\n\t\t\t$r = file_get_contents($url);<br \/>\n\t\t\tfile_put_contents($url_md5.&#8217;.tmp&#8217;, $r);<br \/>\n\t\t}<\/p>\n<p>\t\treturn $r;<br \/>\n\t}<br \/>\n[\/php]<\/p>\n<p>Nast\u0119pnie doczepiamy funkcj\u0119 przetwarzaj\u0105c\u0105 pobrane \u017cr\u00f3d\u0142o RSS na tablic\u0119 PHP:<br \/>\n[php]<br \/>\n\/\/ parser RSS<br \/>\n        function rss_to_array($tag, $array, $url) {<br \/>\n                $doc = new DOMdocument();<br \/>\n               \/\/ $doc->load($url);<br \/>\n\t\t$doc->loadXML(get_zrodlo($url));<br \/>\n                $rss_array = array();<br \/>\n                $items = array();<br \/>\n                foreach($doc->getElementsByTagName($tag) AS $node) {<br \/>\n                        foreach($array AS $key => $value) {<br \/>\n                                $items[$value] = $node->getElementsByTagName($value)->item(0)->nodeValue;<br \/>\n                        }<br \/>\n                        array_push($rss_array, $items);<br \/>\n                }<br \/>\n                return $rss_array;<br \/>\n        }<br \/>\n[\/php]<\/p>\n<p>Na koniec uzupe\u0142niamy skrypt poleceniami wy\u015bwietlaj\u0105cymi linki w postaci kodu JavaScript:<br \/>\n[php]<br \/>\n        $rss_tags = array(<br \/>\n                &#8216;title&#8217;,<br \/>\n                &#8216;link&#8217;,<br \/>\n                &#8216;description&#8217;,<br \/>\n        );<br \/>\n        $rss_item_tag = &#8216;item&#8217;;<br \/>\n        $rss_url = $_GET[u];<\/p>\n<p>        $rssfeed = rss_to_array($rss_item_tag,$rss_tags,$rss_url);<\/p>\n<p>        $i=0;<br \/>\n\techo &#8216;document.write(&#8220;<\/p>\n<ul class=RSSlink>&#8220;);&#8217;.&#8221;\\n&#8221;;<br \/>\n        if (!empty($rssfeed)) foreach ($rssfeed as $v) { if ($i>=$ile_url) break;<br \/>\n\t\t$i++;<br \/>\n\t\tif ($limit_zn>0) $t = substr($v[title], 0, $limit_zn).&#8217;&#8230;&#8217;;<br \/>\n\t\telse  $t = $v[title];<br \/>\n\t\techo &#8216;document.write(&#8220;<\/p>\n<li><a target=\\\\\"_blank\\\\\" rel=\\\\\"nofollow\\\\\" href=\\\\\"'.$v[link].'\\\\\" title=\\\\\"'.$v[title].'\\\\\">&#8216;.$t.&#8217;<\/a><\/lu>&#8220;);&#8217;.&#8221;\\n&#8221;;<br \/>\n\t}<br \/>\n\techo &#8216;document.write(&#8220;<\/ul>\n<p>&#8220;);&#8217;.&#8221;\\n&#8221;;<br \/>\n[\/php]<\/p>\n<p>Zamykamy skrypt PHP, zapisujemy w folderze RSS, nast\u0119pnie ustawiamy chmod 0777 na folder RSS.<br \/>\nTo wszystko! \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prosty i funkcjonalny skrypt PHP wy\u015bwietlaj\u0105cy kana\u0142 RSS dowolnej strony internetowej. Dodatkowo kod JavaScript do wy\u015bwietlania RSS na stronach z systemami CMS (PHPfusion, Joomla), blogami, forami dyskusyjnymi, itp.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,38,26,27,24],"tags":[153,235,266,264,265,260,262,152,256,258,239,240,238,16,233,232,241,243,242,244,236,245,263,17,55,234,247,254,248,252,251,249,250,253,255,237,10,53,9,8,7,261,259,257,246],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-darmowe-komponenty-2","category-google","category-pozycjonowanie-strony-w-google","category-promowanie-stronybloga","category-technologieinformatyka","tag-css","tag-czytnik-rss","tag-czytnik-rss-bez-logowania","tag-czytnik-rss-na-stronie","tag-czytnik-rss-za-darmo","tag-czytwnik-rss-wordpress-na-strone","tag-czytwnik-rss-z-wordpress-na-strone","tag-html","tag-jak-czytac-rss-na-stronie","tag-jak-wkleic-rss-na-strone","tag-jak-wyswietlic-rss","tag-jak-wyswietlic-rss-na-stronie","tag-jak-zrobic-cztnik-rss","tag-jak-zrobic-swoja-strone-www","tag-javascript","tag-js","tag-kanal-rss-dowolnej-strony-internetowej","tag-kod-js-do-rss","tag-kod-php-do-rss","tag-php-czytnik-rss","tag-php-rss","tag-pokaz-rss-na-stronie-www","tag-pokaz-rss-na-www","tag-porady-dla-webmasterow-2","tag-robienie-www","tag-rss","tag-rss-na-blogu","tag-rss-na-cms","tag-rss-na-forum","tag-rss-na-joomla","tag-rss-na-mybb","tag-rss-na-phpbb","tag-rss-na-phpbb-by-przemo","tag-rss-na-phpfusion","tag-rss-na-stronie-www","tag-rss-to-php","tag-strony-internetowe","tag-strony-www","tag-tworzenie-stron-www","tag-webmaster","tag-webowiec","tag-widget-rss-wordpress-na-strone-www","tag-wtyczka-rss-na-strone","tag-wyswietlanie-rss-na-sronie","tag-wyswietlanie-rss-na-stronie"],"_links":{"self":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":16,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":474,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts\/114\/revisions\/474"}],"wp:attachment":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}