Нету крона на хостинге. Надо что бы каждые 3 минуты срабатывался скрипт, причём что бы на страницу не должен был заходить человек.
Спустя 32 минуты, 41 секунда (19.09.2010 - 08:34) twin написал(а):
Демон делать... Не очень хорошая практика на PHP, но куда деваться, коли так.
Спустя 1 час, 17 минут, 4 секунды (19.09.2010 - 09:51) Xpund написал(а):
Цитата (twin @ 19.09.2010 - 05:34) |
Демон делать... |
А как его сделать?
Спустя 26 минут, 16 секунд (19.09.2010 - 10:17) twin написал(а):
ну самый простой способ - бесконечный цикл.
Только очень осторожно с этим. Запустишь скрипт - не остановишь уже, пока сервер не перезапустишь. И таких процессов можно очень много назапускать.
set_time_limit(0);
ignore_user_abort(true);
while(true)
{
// тут делаешь что нужно
sleep(180);
}
Только очень осторожно с этим. Запустишь скрипт - не остановишь уже, пока сервер не перезапустишь. И таких процессов можно очень много назапускать.
Спустя 3 минуты, 18 секунд (19.09.2010 - 10:20) Xpund написал(а):
А если я фаил удалю? Скрипт выключиться?
Спустя 1 минута, 52 секунды (19.09.2010 - 10:22) twin написал(а):
Нет. Не выключится. Он в оперативке будет молотить. Делай точку выхода при отладке, потом запустишь один раз.
И еще - он перестанет работать, как только хостер ребутнет сервер. Некоторые делают это часто.
И еще - он перестанет работать, как только хостер ребутнет сервер. Некоторые делают это часто.
Спустя 4 минуты, 38 секунд (19.09.2010 - 10:27) Xpund написал(а):
twin
Спасибо большое
Вот посмотри будет работать?
Спасибо большое
Вот посмотри будет работать?
<?
set_time_limit(0);
ignore_user_abort(true);
while(true)
{
$file=file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');
$dom = new domDocument;
$dom->loadXML($file);
if (!$dom) exit('Ошибка парсинга документа!');
$s = simplexml_import_dom($dom);
if(!empty($s))
{
foreach ($s as $k=>$v)
{
selectDb('realmd');
$q=mysql_query("SELECT * FROM `account` WHERE `reward_points`<".$v['unixtime']." AND id='".$v."' ") or die (mysql_error());
if(mysql_num_rows($q)>0) $mas[]=$v;
}
$time=time();
if(!empty($mas))
{
foreach ($mas as $g=>$val)
{
selectDb("realmd");
mysql_query("UPDATE account SET reward_points=".$time.",bonuses = bonuses + 10 WHERE id='".$val."' ") or die (mysql_error());
}
}
}
sleep(200);
}
?>
Спустя 9 минут, 48 секунд (19.09.2010 - 10:36) twin написал(а):
Ну во первых сразу остановится, если что то произойдет с соединением. Тоесть тебе нужно как минимум погасить ошибку
ну и дальше. А лучше их вообще все поотключить.
Это ты кому пишешь? Серверу?
и что за дурацкая привычка ставить восклицательные знаки... Чему тут ликовать?
Дальше не смотрел - там твоя логика.
$file = @file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');
ну и дальше. А лучше их вообще все поотключить.
error_reporting(0);
Это ты кому пишешь? Серверу?

if (!$dom) exit('Ошибка парсинга документа!');
и что за дурацкая привычка ставить восклицательные знаки... Чему тут ликовать?

Дальше не смотрел - там твоя логика.
Спустя 4 минуты, 12 секунд (19.09.2010 - 10:41) Xpund написал(а):
Просто раньше этот скрипт вызывался путём переходу по ссылке. А сейчас мне надо что бы работал автоматически.
twin
Пожалуйста, выложи полный ответ, то есть переделанный мой код.
twin
Пожалуйста, выложи полный ответ, то есть переделанный мой код.
Спустя 8 минут, 56 секунд (19.09.2010 - 10:50) twin написал(а):
Иш ты... Мне как будто заняться нечем.
Переделывай сам, я посмотрю.

Переделывай сам, я посмотрю.
Спустя 6 минут, 49 секунд (19.09.2010 - 10:56) Xpund написал(а):
<?
set_time_limit(0);
ignore_user_abort(true);
while(true)
{
$file = @file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');
error_reporting(0);
$dom = new domDocument;
$dom->loadXML($file);
$s = simplexml_import_dom($dom);
if(!empty($s))
{
foreach ($s as $k=>$v)
{
selectDb('realmd');
$q=mysql_query("SELECT * FROM `account` WHERE `reward_points`<".$v['unixtime']." AND id='".$v."' ") or die (mysql_error());
if(mysql_num_rows($q)>0) $mas[]=$v;
}
$time=time();
if(!empty($mas))
{
foreach ($mas as $g=>$val)
{
selectDb("realmd");
mysql_query("UPDATE account SET reward_points=".$time.",bonuses = bonuses + 10 WHERE id='".$val."' ") or die (mysql_error());
}
}
}
sleep(200);
}
?>
Спустя 10 минут, 53 секунды (19.09.2010 - 11:07) twin написал(а):
set_time_limit(0);
ignore_user_abort(true);
error_reporting(0);
while(true)
{
$file = file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');
Спустя 45 секунд (19.09.2010 - 11:08) Xpund написал(а):
Спасибо.
Спустя 3 часа, 42 минуты, 55 секунд (19.09.2010 - 14:51) FatCat написал(а):
Цитата (twin @ 19.09.2010 - 11:22) |
он перестанет работать, как только хостер ребутнет сервер. Некоторые делают это часто. |
А многие хостеры делают kill процессов, длящихся более 120 (или сколько там задано) секунд.
Спустя 2 часа, 6 минут, 33 секунды (19.09.2010 - 16:57) ZSH написал(а):
я бы еще сделал точку выхода, если надо остановить то сервак перегружать что ли
_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)