помогите разобраться с запуском php скриптов с консоля
Нужно в скрипте php запустить внешнюю программу, а лучше другой паралельно работающий скрипт.
Дело в том, что есть форум, нужно сделать так, чтобы при добавлении новой темы отсылалось всем юзерам письмо с текстом этой темы. нужно запустить паралельный php скрипт, который будет вытягивать с базы письмаи разссылать их юзерам. Если рассылать письма при добавлении темы, то пользователю прийдется ждать нкоторое время (4-5) минут, пока скрипт выполнит всю рассылкую Нужно сделать так, чтобы пользователь не ощущал в своей работе выполение рассылки, то есть запускался паралельный скрипт.:)
Обратные кавычки ``
exec ("C:\php\php.exe user\script.php");
что тут не правильного?
exec ("C:\php\php.exe user\script.php");
что тут не правильного?[/QUOTE]
это значит
<?php
$output = `C:\php\php.exe user\script.php`;
echo "<pre>$output</pre>";
?>
если чесно я вовсе не понимаю как оно работает, но работает, вот тольк указал прямой путь к скрипту, тоесть C:\\путь\script.php
Для тех, кто столкнется с такой проблемой. обртите внимание на два слеша
...но что то подсказывает мне - это издевательство над пользователем, если он каждый раз будет получать лишний спам. есть другие решения.
1. на всех нормальных форумах есть подписка ("уведомлять меня при наличии новых тем")
2. есть такая штука "прочесть все последние сообщения с моего последнего захода" (ну эт вообще просто: делаешь в таблице юзеров поле "дата последнего входа" и выводиь ему все сообщения начиная с этой даты)
3. RSS-ленты.
Пользователь, если ему действительно необходимо, будет рад любому способу, однако никто не захочет получать лишний спам. Это раздражает. Лично я слежу за данным форумом именно по RSS, за что mike'у огромный респект! Если б не эта лента - мены бы здесь наверно не было ;)
если чесно я вовсе не понимаю как оно работает, но работает, вот тольк указал прямой путь к скрипту, тоесть C:\\путь\script.php
Для тех, кто столкнется с такой проблемой. обртите внимание на два слеша[/QUOTE]
Для тех кто в танке: знак \ является служебным. Чтобы твой пример работал его надо экранировать. Думается мне что вот это тоже будет работать.
exec ('C:\php\php.exe user\script.php');
exec ("C:\\php\\php.exe user\\script.php");
ЗЫ надеюсь ты знаешь разницу между кавычками ' и "
...но что то подсказывает мне - это издевательство над пользователем, если он каждый раз будет получать лишний спам. есть другие решения.
1. на всех нормальных форумах есть подписка ("уведомлять меня при наличии новых тем")
2. есть такая штука "прочесть все последние сообщения с моего последнего захода" (ну эт вообще просто: делаешь в таблице юзеров поле "дата последнего входа" и выводиь ему все сообщения начиная с этой даты)
3. RSS-ленты.
Пользователь, если ему действительно необходимо, будет рад любому способу, однако никто не захочет получать лишний спам. Это раздражает. Лично я слежу за данным форумом именно по RSS, за что mike'у огромный респект! Если б не эта лента - мены бы здесь наверно не было ;)[/QUOTE]
О каком RSS ты говоришь! Товарищ еще не дорос... Пусть пока так. Пусть опыта набирается. Однажды станет профи и будет давать советы нам. Пожелаем ему чтобы именно так и случилось.
2 mel_sasha:
Попробуй RSS, могу дать пример. Это очень просто!
Всем огромное спасибо за дружескую поддержку и дельные советы!
а еще, я не знаю как работает этот форум, но при добавлении новой темы или ответа, браузер браузер передает на сервер данные и в результате на пару минут весит пустое окно, что очень не удобно...
больная тема... вроде и хочешь как получше, а заказчики тупят и в результате никакого морального удовлетворения.
всё-таки сайты делаются не для заказчиков а для пользователей.
тем более когда дописываешь
<?php
$output = `C:\php\php.exe user\script.php`;
echo "<pre>$output</pre>";
?>[/QUOTE]
Вот только процес не запускается паралельно, тоесть в в бекграунде, а мне нужно именно так, причем в ОС windows:)