Спустя 34 минуты, 54 секунды (20.11.2010 - 12:18) LRCenter написал(а):
Ну то есть как можно сделать такой финт:
Возможно ли это сделать и какой послать заголовок? Очень надо.
ignore_user_abort(true);
#Тут какой-нибудь заголовок что бы брузер отцепился от страницы и в тоже время ничего не выводил, какой вот только?
header("HTTP/1.0 404 Not Found");
#Далее идет код который будет выполнятся после окончания загрузки страницы в браузере.
Возможно ли это сделать и какой послать заголовок? Очень надо.
Спустя 1 час, 11 минут, 25 секунд (20.11.2010 - 13:29) DySprozin написал(а):
;;Можно ли послать http-заголовок браузеру, что документ загружен(кстати это какой номер? 200?)
эээ... ну если докумет на месте, то такое сообщение и посылается (;
;;незаметно для пользователя и браузера продолжить выполнение
а если так...
ну или юзай iframe (;
эээ... ну если докумет на месте, то такое сообщение и посылается (;
;;незаметно для пользователя и браузера продолжить выполнение
а если так...
<?php
ignore_user_abort(true);
...
скрипт
...
?>
<html>
документ
</html>
<script type="text/javascript">
window.stop();
</script>
ну или юзай iframe (;
Спустя 2 часа, 10 минут, 35 секунд (20.11.2010 - 15:40) LRCenter написал(а):
DySprozin, нет, скрипт должен обязательно выполнятся после отображения страницы - его выполнение может затянутся на длительное время.
JavaScript и фреймы использовать не хочу. Надо чтобы было универсально и для людей и для роботов.
Может послать заголовок с другим кодом, но с каким?
http://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
JavaScript и фреймы использовать не хочу. Надо чтобы было универсально и для людей и для роботов.
Может послать заголовок с другим кодом, но с каким?
http://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
Спустя 7 минут, 52 секунды (20.11.2010 - 15:48) DySprozin написал(а):
LRCenter
тогда попробуй в html страницу вставить
а уже в script.php написать
тогда попробуй в html страницу вставить
<img src="./script.php" width="1px" height="1px">
а уже в script.php написать
<?php
ignore_user_abort(true);
...
скрипт
...
?>
Спустя 8 минут, 11 секунд (20.11.2010 - 15:56) LRCenter написал(а):
DySprozin, в этом случае эта "картинка" может загружаться полчаса))
Браузер будет показывать что страница не дозагружена? А поисковики вообще непредсказуемо отреагируют.
Хотелось бы, все же что бы процесс запускался незаметно для любых браузеров или агентов.
Тогда я просто мог бы вставить file_get_contents со ссылкой на такой скрипт, он бы быстро возвращал пустую строку и пользовательская страница грузилась бы дальше, а запущеный скрипт продолжал работать до победного конца.
Браузер будет показывать что страница не дозагружена? А поисковики вообще непредсказуемо отреагируют.
Хотелось бы, все же что бы процесс запускался незаметно для любых браузеров или агентов.
Тогда я просто мог бы вставить file_get_contents со ссылкой на такой скрипт, он бы быстро возвращал пустую строку и пользовательская страница грузилась бы дальше, а запущеный скрипт продолжал работать до победного конца.
Спустя 4 минуты, 9 секунд (20.11.2010 - 16:00) DySprozin написал(а):
LRCenter
тогда ИМХО нельзя - либо юзверь останавливает загрузку страницы, либо жабаскрипт (;
тогда ИМХО нельзя - либо юзверь останавливает загрузку страницы, либо жабаскрипт (;
Спустя 3 минуты, 55 секунд (20.11.2010 - 16:04) LRCenter написал(а):
DySprozin, смотри а если я верну
При редиректе код продолжит выполнятся, ignore_user_abort(true) же?
ignore_user_abort(true);
$redirekt = "На пустую страницу";
header ('HTTP/1.1 301 Moved Permanently');
header ("location: " . $redirekt);
#Код
При редиректе код продолжит выполнятся, ignore_user_abort(true) же?
Спустя 32 минуты, 18 секунд (20.11.2010 - 16:36) DySprozin написал(а):
LRCenter
идея красивая (; но не работает (только что проверил). Можешь и сам проверить:
Есть еще такая идея:
тогда скрипт запуститься, а страница окажется загружена. Ключевую роль играет последний амперсанд (;
идея красивая (; но не работает (только что проверил). Можешь и сам проверить:
<?
ignore_user_abort(true);
$redirekt = "/";
header ('HTTP/1.1 301 Moved Permanently');
header ("location: " . $redirekt);
for($i=0;$i<10;$i++){
fopen($i,"w+");
}
?>
Есть еще такая идея:
system("php script.php &");
тогда скрипт запуститься, а страница окажется загружена. Ключевую роль играет последний амперсанд (;
Спустя 17 минут, 6 секунд (20.11.2010 - 16:53) LRCenter написал(а):
DySprozin, да редирект происходит только после того как выполнится весь скрипт, почему-то :(
Не пашет тоже, что это вобще такое?
system("php script.php &");
Не пашет тоже, что это вобще такое?
Спустя 13 минут, 18 секунд (20.11.2010 - 17:07) DySprozin написал(а):
LRCenter
;;Не пашет тоже, что это вобще такое?
это запуск скрипта в unix-системах в фоновом режиме (; или у тебя хостинг под виндой? (;
;;Не пашет тоже, что это вобще такое?
это запуск скрипта в unix-системах в фоновом режиме (; или у тебя хостинг под виндой? (;
Спустя 7 минут, 37 секунд (20.11.2010 - 17:14) LRCenter написал(а):
Да я на локальном серве, под виндой.
А под линуксом это
А что значит амперсанд в конце строки?
А под линуксом это
system("php script.php &");загрузка страницы завершается без ожидания окончания загрузки запущенного так скрипта?
А что значит амперсанд в конце строки?
Спустя 2 минуты, 5 секунд (20.11.2010 - 17:16) DySprozin написал(а):
;;загрузка страницы завершается без ожидания окончания загрузки запущенного так скрипта?
да
;;А что значит амперсанд в конце строки?
значит "запускать в фоновом режиме" (т.е. не ждать, пока скрипт закончит свою работу).
да
;;А что значит амперсанд в конце строки?
значит "запускать в фоновом режиме" (т.е. не ждать, пока скрипт закончит свою работу).
Спустя 7 минут, 49 секунд (20.11.2010 - 17:24) LRCenter написал(а):
А возможность запуска такой команды - system() может быть заблокирована хостером?
Спустя 2 минуты, 6 секунд (20.11.2010 - 17:26) DySprozin написал(а):
LRCenter
бесплатным - да
платным - нет (;
бесплатным - да
платным - нет (;
Спустя 6 минут, 20 секунд (20.11.2010 - 17:33) LRCenter написал(а):
И выводить содержимое работы скрипта с амперсандом тоже не будет?
---
Получается что если запускать таким способом, не нужно добавлять строку
ignore_user_abort(true);
в исполняемый код?
---
Получается что если запускать таким способом, не нужно добавлять строку
ignore_user_abort(true);
в исполняемый код?
Спустя 2 минуты, 47 секунд (20.11.2010 - 17:35) DySprozin написал(а):
;;И выводить содержимое работы скрипта с амперсандом тоже не будет?
да
;;не нужно добавлять строку
угу (;
да
;;не нужно добавлять строку
угу (;
Спустя 11 минут, 46 секунд (20.11.2010 - 17:47) LRCenter написал(а):
DySprozin, вы знаете проверил под линуксом - все запускается, но почему-то даже с амерсандом приходится ждать пока скрипт доделает свою работу. :(
из index.php вызываю:
В demon.php цикл на сто миллионов тактов, без вывода. Приходится ждать несколько сек. пока он не закончит работу index.php дальше не грузится.
Что не так?
из index.php вызываю:
system("php demon.php &");
В demon.php цикл на сто миллионов тактов, без вывода. Приходится ждать несколько сек. пока он не закончит работу index.php дальше не грузится.
Что не так?
Спустя 2 минуты, 28 секунд (20.11.2010 - 17:50) DySprozin написал(а):
LRCenter
странно... по ssh зайти и в командной строке набрать php demon.php & можете?
странно... по ssh зайти и в командной строке набрать php demon.php & можете?
Спустя 9 минут, 25 секунд (20.11.2010 - 17:59) LRCenter написал(а):
нет. Это как?
---
В процессе зарузки страницы в опера, индикатор загрузки прерывается и, видимо как раз во время работы demon.php показывает 3Б - типа 3Байта.
---
В процессе зарузки страницы в опера, индикатор загрузки прерывается и, видимо как раз во время работы demon.php показывает 3Б - типа 3Байта.
Спустя 15 минут, 14 секунд (20.11.2010 - 18:14) LRCenter написал(а):
Может эти 3 байта вывод от скрипта, а вывода быть не должно:
Цитата |
Примечание: если вы начинаете программу с использования этой функции и хотите оставить её работать в фоновом режиме, вы должны гарантировать, что вывод этой программы будет перенаправлен в файл или какой-нибудь другой поток вывода, иначе PHP зависнет, пока не закончится выполнение программы. http://www.php.su/functions/?system |
Думал может BOM, пересохранил - проверил, даже в ANSI, пересохранил - разультат тотже.
Спустя 6 минут, 49 секунд (20.11.2010 - 18:21) LRCenter написал(а):
Код, demon.php, как вы можете убедиться никакого вывода:
<?php
$x=0;
while ($x<100000000)
{
$x++; // Увеличение счетчика
}
?>
Спустя 57 секунд (20.11.2010 - 18:22) DySprozin написал(а):
;;нет. Это как?
тогда не надо (;
попробуй так:
system("php demon.php > text.txt &");
и так:
system("php demon.php & > text.txt");
тогда не надо (;
попробуй так:
system("php demon.php > text.txt &");
и так:
system("php demon.php & > text.txt");
Спустя 14 минут, 6 секунд (20.11.2010 - 18:36) LRCenter написал(а):
Да, сработал первый вариант!
Это мы перенаправили вывод в файл? Он создался, а в нем 0 байт. Странно.
---
DySprozin, вы мне очень помогли, потратив кучу своего свободного времени и одной кармой от меня не отделаетесь. Сообщите мне пожалуйста номер своего яндекс.кошелька. Я бы хотел хоть символически, но заплатить вам за потраченное на решение моей проблемы время. Это очень важно для меня.
Это мы перенаправили вывод в файл? Он создался, а в нем 0 байт. Странно.
---
DySprozin, вы мне очень помогли, потратив кучу своего свободного времени и одной кармой от меня не отделаетесь. Сообщите мне пожалуйста номер своего яндекс.кошелька. Я бы хотел хоть символически, но заплатить вам за потраченное на решение моей проблемы время. Это очень важно для меня.
Спустя 9 минут, 7 секунд (20.11.2010 - 18:45) DySprozin написал(а):
;;Да, сработал первый вариант!
бинго! (;
;;Это мы перенаправили вывод в файл? Он создался, а в нем 0 байт. Странно.
очень просто: скрипт не выводит ничего, вот и получается 0 байт (;
;;Это очень важно для меня.
хехе (; да мне было не сложно... кошелек ЯД добавил в подпись (;
бинго! (;
;;Это мы перенаправили вывод в файл? Он создался, а в нем 0 байт. Странно.
очень просто: скрипт не выводит ничего, вот и получается 0 байт (;
;;Это очень важно для меня.
хехе (; да мне было не сложно... кошелек ЯД добавил в подпись (;
Спустя 19 минут, 37 секунд (20.11.2010 - 19:05) LRCenter написал(а):
DySprozin, ловите гонорар
Код протекции "6347".
----
Обнаглею и задам еще один вопрос, из чистого любопытства:
А как можно запустить скрипт system-ом c параметрической get-строкой?
Код протекции "6347".
----
Обнаглею и задам еще один вопрос, из чистого любопытства:
А как можно запустить скрипт system-ом c параметрической get-строкой?
Цитата |
system("php demon.php?p1=a&p2=b > text.txt &"); |
- не работает.
Спустя 27 минут, 19 секунд (20.11.2010 - 19:32) DySprozin написал(а):
;;DySprozin, ловите гонорар
мерси
;;А как можно запустить скрипт system-ом c параметрической get-строкой?
system("php demon.php var1 var2 var3 > text.txt &");
тогда:
echo $argv[1]; // выведет "var1"
echo $argv[2]; // выведет "var2"
echo $argv[3]; // выведет "var3"
мерси
;;А как можно запустить скрипт system-ом c параметрической get-строкой?
system("php demon.php var1 var2 var3 > text.txt &");
тогда:
echo $argv[1]; // выведет "var1"
echo $argv[2]; // выведет "var2"
echo $argv[3]; // выведет "var3"
Спустя 3 минуты, 49 секунд (20.11.2010 - 19:36) LRCenter написал(а):
Ага, понятно, спасибо еще раз!
Спустя 1 минута, 35 секунд (20.11.2010 - 19:38) DySprozin написал(а):
обращайтесь (;
Спустя 25 дней, 19 часов, 59 минут, 52 секунды (16.12.2010 - 15:38) LRCenter написал(а):
А под виндой есть эквивалентаная функция?
Спустя 1 час, 54 минуты, 15 секунд (16.12.2010 - 17:32) Basili4 написал(а):
ИМХО я делал вот как. Занчит юзер загружает старницу стартует php скрипт записывающий некое заначение в файл базу не важно говорящие о том что пользователь видит сртаницу.
Есть некий скрипт работающий в фоне запускаемый кроном. Как только видит что занчение установлено он начинает вести бурную деятельность то есть делать, что ему надо и отписывать результаты в файл. Пользователь при обновлении страницы будет видеть новые данные.
Есть некий скрипт работающий в фоне запускаемый кроном. Как только видит что занчение установлено он начинает вести бурную деятельность то есть делать, что ему надо и отписывать результаты в файл. Пользователь при обновлении страницы будет видеть новые данные.
Спустя 3 часа, 15 минут, 58 секунд (16.12.2010 - 20:48) LRCenter написал(а):
Не, тут фишка в том чтобы без хрона обойтись
_____________
Меньше кода - меньше багов ©