php i wywoływania funkcji co pewien czas

0

Witam,

mam pytanie donośnie php i wywoływania funkcji co pewien czas.

posiadam funkcję serverinfo,

i che wywoływać ją co 5 min.

Napisałem coś takiego:

date_default_timezone_set('Europe/Warsaw');

require_once 'class/ts3admin.class.php';
require_once 'functions/serverinfo.php';

$time = time();
while (true) {
	$time1 = time();
	$time = floor($time+(10));
	if ($time1 = $time) {
		serverinfo();
		$time = time();
	}else{
		$time1 = time();
	}
	die();
}
	echo $time1;
	echo $time;

jest dopisane echo gdyż chciałem sprawdzić czy pobiera czas. zmienna jest pusta oraz jest wpisane + 10 sekund do sprawdzania czy działa.

Oto moje pytanie jak to zrobić by funkcja serverinfo wywoływała się co 5 min.

Z góry dziękuję

0

Poczytaj o cronie.

0

Wiem co to cron, nie che go używać,
Che zastosować sam php.

0

Dlaczego nie chcesz wykorzystać crona?

0

Bo to jest bot do strony a stronę udostępnię na forum. Wątpię, żeby komuś się chciało bawić cronem.
Ale już mam:

<?php
date_default_timezone_set('Europe/Warsaw');
$timestamp = time();
require_once 'class/ts3admin.class.php';
require_once 'functions/serverinfo.php';

while (true) {
	if ($timestamp+60 < time()) {
		serverinfo();
		$timestamp = time();
	}else{
	}
	sleep(1);
}
?>

Jakby ktoś szukał kiedyś odpowiedzi.

0

Hm... zrobiłeś "niekończącą" się pętlę w PHP. Mam tylko pytanie. Jak chcesz tego bota uruchomić?

1

Złapie Cię timeout przy takim rozwiązaniu

0

Pomijam już fakt stosowania nieskończonej pętli ale cron w tym przypadku nie byłby złym rozwiązaniem.

Z drugiej strony można to zrobić w js, setInterval i wysyłać zapytanie poprzez ajax.

0

Teraz cały kod wygląda tak:

require_once 'class/ts3admin.class.php';
require_once 'functions/serverinfo.php';
require_once 'config.php';

$tsAdmin = new ts3admin($config['ip'], $config['query_port']);

if ($tsAdmin->getElement('success', $tsAdmin->connect())){

	$tsAdmin->login($config['login'], $config['password']);
	$tsAdmin->selectServer($config['port']);
	$tsAdmin->setName('(CRbot)'.$config['name']);
}
date_default_timezone_set('Europe/Warsaw');
$timestamp = time();
while (true) {
	if ($timestamp+299 < time()) {
		serverinfo($tsAdmin);
		$timestamp = time();
	}else{
	}
	sleep(1);
}

wywołuje to screenem.

I działa :D
Jest to bot do ts3.

1 użytkowników online, w tym zalogowanych: 0, gości: 1