No nie wiem czy to jest prostrze bo mi nie wychodzi
Znalazłem inny skryp tylko że wyskajuje mi taki błąd:
Warning: file_exists() [
function.file-exists]: open_basedir restriction in effect. File(/home/neoprog/www/rss/www.sport24.pl,feed,pilka.xml_) is not within the allowed path(s): (/home/niedojeb/) in
/home/niedojeb/www/bukmacherka/rss_fetch.php on line
77i wiadomości się nie odświeżają bo albo jest za długi czas ustawiony albo przez ten błąd
example.php
<!--
To include this sample on your homepage, make sure the page's extension is .php
and inside it put
include "example.php";
just make sure example is in the same folder as your main page.
-->
<table style="background-color: #FFFFFF; border: solid 1px #000000;" cellpadding="2" cellspacing="1" width="70%" align="center">
<tr>
<td style="background-color: #0096D2; font-weight: bold; color: #FFFFFF; font-size: 14px; text-align: center;" width="75%" align="center">Wiadmości ze świata sportu </td>
</tr>
<?php
include_once "./rss_fetch.php";
$html = " <tr>\n";
$html .= " <td style='background-color: #DCF0FA; font-weight: bold; color: #000000; font-size: 13px;'>\n";
$html .= " <font size='+1'><a href='#{link}' target='_new'>#{title}</a></font><br />\n";
$html .= " #{description}<br />\n";
$html .= " <font size='2'>#{pubDate}<br /><br />\n";
$html .= " </td>\n";
$html .= " </tr>\n";
?>
</table>
oraz drugi plik
rss_fetch.php
<?php
/************************************************************
RSS Fetch 0.4.1
RSS Feed Reader
Author: Drew Phillips
Copyright 2005 Drew Phillips
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
************************************************************/
class rss_parser {
var $update_interval = 60;
/* How often to fetch the rss file
A cached version will be used between updates */
var $data_directory = "/home/neoprog/www/rss";
/* Where to store the rss data from the feeds
Note: an absolute path is better than a relative path here
unless you plan on keeping the script to display the feeds
in the same folder as this file and the feeds. */
/* NO NEED TO EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING */
var $rss_url;
var $num_to_show;
var $do_update;
var $content;
var $feed_title;
var $feed_link;
var $feed_description;
var $my_html;
function rss_parser($url, $numtoshow = 10, $html = "", $update = 0)
{
$this->rss_url = $url;
$this->num_to_show = $numtoshow;
$this->do_update = $update;
$this->my_html = preg_replace("/(#{.*?):(.*?})/", "1__2", $html); //xx:xx tag workaround
$this->content = $this->fetch_feed();
$this->parse_feed();
$this->show();
}
/* string */
function fetch_feed()
{
$filename = $url_parts['host'] . str_replace("/", ",", $url_parts['path']) . "_" . @$url_parts['query']; if(file_exists($this->data_directory . "/$filename")) { $last = filemtime($this->data_directory . "/$filename"); if(time() - $last > $this->update_interval * 60
|| $this->update_interval == 0
) { $update = 1;
}
} else {
$create= 1;
}
if($create == 1 || ($this->do_update == TRUE && $update == 1)) {
$fp = @fsockopen($url_parts['host'], 80
, $errno, $errstr, 5
); if (!$fp) {
echo "Couldn't open rss feed {$this->feed_url} in {$_SERVER['PHP_SELF']}<br />\n"; return;
}
fputs($fp, "GET " . $url_parts['path'] . "?" . @$url_parts['query'] . " HTTP/1.0r\n" ."Host: " . $url_parts['host'] . "r\n"
."User-Agent: Drew's RSS Reader 0.1r\n"
."Connection: Closer\nr\n");
$rss_data .= @fgets($fp, 1024
); }
list
(, $rss_data) = explode("r\nr\n", $rss_data, 2
);
$output = @fopen($this->data_directory . "/$filename", "w+"); if(!$output) {
return $rss_data;
} else {
fputs($output, $rss_data); }
} //update
}
/* void */
function parse_feed()
{
preg_match("/<title>(.*?)</title>/", $this->content, $title); $this->feed_title = @$title[1];
preg_match("/<link>(.*?)</link>/", $this->content, $link); $this->feed_link = @$link[1];
preg_match("/<description>(.*?)</description>/", $this->content, $description); $this->feed_description = @$description[1];
echo "No item elements found in rss feed.<br />\n"; }
for($i = 0; $i < sizeof($items[0
]); ++$i) { preg_match_all("/(?:<([w:]*)[^>]*>(?:<![CDATA[)?(.*?)(?:]]>)?</1>)+?/si", preg_replace("/<item[^>]*>/", "", $items[0
][$i]), $elements); for($j = 0; $j < sizeof($elements[0
]); ++$j) { $elements[1
][$j] = str_replace(":", "__", $elements[1
][$j]); //regex fix for items with : like dc:date }
}
}
/* void */
function show()
{
if($this->my_html == "") {
$this->show_html();
} else {
$this->show_user_html();
}
}
function show_html()
{
$show = (sizeof($this->rss) > $this->num_to_show ?
$this->num_to_show : sizeof($this->rss)); for($i = 0; $i < $show; ++$i) {
echo "- <a href=\"{$this->rss[$i]['link']}\" target=\"_new\">{$this->rss[$i]['title']}</a><br />\n"; }
}
function show_user_html()
{
$show = (sizeof($this->rss) > $this->num_to_show ?
$this->num_to_show : sizeof($this->rss)); for($i = 0; $i < $show; ++$i) {
$item = preg_replace("/#{([^}]+)}/e", "$1", $this->my_html); }
}
} // end class
?>