Авто рефреш

bganonymous

Registered
Използвам следния скрипт за извличане на RSS новини:
Код:
<?php
$rss = new DOMDocument();
$rss->load('http://autobild.bg/rss.php');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array ( 
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'img' => $node->getElementsByTagName('img')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
'category' => $node->getElementsByTagName('category')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 3;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$category = $feed[$x]['category'];
$img = $feed[$x]['img'];
$description = $feed[$x]['desc'];
$date = date('d.m.Y, H:i', strtotime($feed[$x]['date']));
echo '
<table class="homenews" width="100%" border="0">
<tr title="'.$description.'">
<td style="vertical-align: bottom;"><img src="'.$img.'" class="imageborder" border="0" width="60" /></td>
<td style="vertical-align: bottom;"><a href="'.$link.'" target="_blank">'.$title.'</a></td>
</tr>
</table>
';
}
echo "<br />";
?>

Следният код показва последните 3 новини от RSS канала във формата на таблица. Как да направя така, че на всеки X секунди (примерно 30 секунди) - да прави рефреш (но не на страницата, а на PHP скпипта) и да зарежда нови новини от RSS канала на случаен принцип? Благодаря предварително! :)
 
ivo75 каза:
Използвай AJAX, ето и линк
http://matthewaprice.com/simple-jquery-ajax-auto-refreshing-div/
OK, а как да настроя PHP скрипта ми да показва случайни новини от RSS канала, а не последните 3? :)
 
С Cron Job, ако хостинга ти го позволява.

Задаваш му кой файл да изпълни и през какво време.

Ако хостинга е със Cpanel, някъде на основната страница беше това за cron job.
 
eddyy93 каза:
С Cron Job, ако хостинга ти го позволява.

Задаваш му кой файл да изпълни и през какво време.

Ако хостинга е със Cpanel, някъде на основната страница беше това за cron job.
OK, а как да настроя PHP скрипта ми да показва случайни новини от RSS канала, а не последните 3?
 
промени си началото на цикъла ето така
Код:
$slu4aen=rand(5, 15);
$limit = 3; 
for($x=$slu4aen;$x<$slu4aen+$limit;$x++)

............
...........

rand(5, 15) - ти взима случайна стойност между 5 и 15

П.П. използвай по-добре като зададеш начална и крайна стойност на за функцията rand(), защото може да ти генерира някакво число и после да нямаш статия с този номер
 
ivo75 каза:
промени си началото на цикъла ето така
Код:
$slu4aen=rand(5, 15);
$limit = 3; 
for($x=$slu4aen;$x<$slu4aen+$limit;$x++)

............
...........

rand(5, 15) - ти взима случайна стойност между 5 и 15

Така показва само 1 резултат...
 
bganonymous каза:
ivo75 каза:
промени си началото на цикъла ето така
Код:
$slu4aen=rand(5, 15);
$limit = 3; 
for($x=$slu4aen;$x<$slu4aen+$limit;$x++)

............
...........

rand(5, 15) - ти взима случайна стойност между 5 и 15

Така показва само 1 резултат...

Колко новини имаш? Да не би са по-малко от 15?
 
Сега пробвах при мен цикъла се изпълнява 3 пъти трябва и при теб да стане. Вместо 15 сложи някакво число, което е с 3 по-малко от броя на статиите ти :)
 
Ето така:

PHP:
 <?php
$rss = new DOMDocument();
$rss->load('http://autobild.bg/rss.php');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array ( 
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'img' => $node->getElementsByTagName('img')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
'category' => $node->getElementsByTagName('category')->item(0)->nodeValue,
);
array_push($feed, $item);
}

shuffle($feed);
$limit = 3;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$category = $feed[$x]['category'];
$img = $feed[$x]['img'];
$description = $feed[$x]['desc'];
$date = date('d.m.Y, H:i', strtotime($feed[$x]['date']));
echo '
<table class="homenews" width="100%" border="0">
<tr title="'.$description.'">
<td style="vertical-align: bottom;"><img src="'.$img.'" class="imageborder" border="0" width="60" /></td>
<td style="vertical-align: bottom;"><a href="'.$link.'" target="_blank">'.$title.'</a></td>
</tr>
</table>
';
}
echo "<br />";
?>
 

Back
Горе