Автоповтор php скрипт
Я хотел бы спросить, как я могу сделать скрипт php, который повторяет идентификатор данных, хранящихся в базе данных, повторяется через определенное время, например, через 2 минуты. Я не хочу использовать задание cron или другой планировщик. Просто php или реализация JavaScript. Заранее спасибо..
3 ответа
Решение
Я сделал подобное с этим сценарием. Пока пользователь находится на странице, он запускается scriptToRun.php
каждые 2 минуты.
function changeFeedAddress() {
$.ajax({
type: 'get',
url: 'scriptToRun.php',
success: function(txt) {
// do something with the new RSS feed ID here
}
});
}
setInterval(changeFeedAddress,120000); // 2 MINUTES
Почему бы просто не сделать это?
<?php
header('refresh: 600; url=http://www.yourhost.com/yourscript.php');
//script here
?>
Если вы генерируете свой идентификатор случайным образом из скрипта... это будет работать нормально. Страница будет обновляться каждые 10 минут.
Замените на @JMC Creative (например, самостоятельно):
<?php
// check if the $.post below is calling this script
if (isset($_POST['ajax']))
{
// $data = /*Retrieve the id in the database*/;
// ---vvvv---remove---vvvv---
// Example Data for test purposes
$data = rand(1,9999);
// End Example Data
// ---^^^^---remove---^^^^---
// output the new ID to the page so the $.post can see it
echo $data;
exit; // and stop processing
}
?>
<html>
<head>
<title>Demo Update</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
// assign a timeout for this script
var timeout = 2 * 60000; // 2 minutes
// create a function we can call over and over to fetch the ID
function updateDBValue(){
// call this same script and retrieve an "id from the database" (see top of page)
$.post('<?php echo $_SERVER['PHP_SELF']; ?>',{ajax:true},function(data){
// 'data' now contains the new ID. For example's sake, place the value
// in to an input field (as shown below)
$('#db-value').val(data);
// set a timer to re-call this function again
setTimeout(updateDBValue,timeout);
});
}
// call the function initially
updateDBValue();
});
</script>
</head>
<body style="text-align:center;">
<div style="margin: 0 auto;border:1px solid #000;display:block;width:150px;height:50px;">
DB Value:<br />
<input type="text" id="db-value" style="text-align:center;" />
</div>
</body>
</head>