Я хотел бы получить самый новый ITEM в rss-ссылке (Reuters: Top News), и когда придет новый ITEM, PHP/AJAX заменит старый ITEM на новый.Проанализируйте XML из RSS с помощью PHP и передайте с помощью AJAX
Я попытался сделать это с помощью PHP и AJAX, но я получаю пустую страницу или «Неустранимая ошибка: максимальное время выполнения 30 секунд превышено в C: \ xampp \ htdocs \ test4.php в строке 11».
Функция:
<?php function parserSide($feedURL) { $rss = simplexml_load_file($feedURL); $output = "
<ul class='newsSide'>"; $i = 0; foreach ($rss->channel->item as $feedItem) { $i++; $output .= "
<li><a href='$feedItem->link' title='$feedItem->title'>" . $feedItem->title . "</a></li>"; if($i >= 1) break; } $output .= "</ul>"; return $output; } ?>
<?php
if(isset($_GET['fetchOnly'])){
$url = 'http://feeds.reuters.com/reuters/topNews';
$response = array();
$handle = fopen($url, 'r');
if ($handle) {
while (($data = simplexml_load_file($url)) !== FALSE)
{
$response = parserSide($url);
}
fclose($handle);
}
echo $response;
die();
}
?>
<div id="responseText"></div>
<script>
// run the function, it will re-run itself
fetchRate();
function fetchRate() {
// create the new AJAX Object
xmlhttp = new XMLHttpRequest();
// this handles the request
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
// if the request came back successfully
if (xmlhttp.status == 200) {
// write the response to a div
div = document.getElementById("responseText")
div.innerHTML = xmlhttp.responseText;
} else {
// if the request had an error
div.innerHTML = div.innerHTML + '<br />Error fetching rates error code : ' + xmlhttp.status;
}
// rerun this function to fetch updates
setTimeout(fetchRate, 1000);
}
};
// open the AJAX Object
xmlhttp.open("GET", "<?= basename(__FILE__) ?>?fetchOnly", true);
// send the AJAX request
xmlhttp.send();
}
</script>
Заранее спасибо
Возможно, вы сможете сделать это напрямую, используя только javascript. – Iceman
Мне нужен php для добавления названия в db после @iceman – TheQuestionerMan
ok. затем давайте c. – Iceman