За последние 24 часа нас посетили 18256 программистов и 1611 роботов. Сейчас ищут 1933 программиста ...

редирект на себя

Тема в разделе "Прочее", создана пользователем basist, 19 сен 2007.

  1. basist

    basist Активный пользователь

    С нами с:
    7 июл 2007
    Сообщения:
    388
    Симпатии:
    0
    Адрес:
    Орел
    Проблема такая: скрипт работает очень долго из-за того, что берёт данные с других сайтов, и за 30 секунд естественно не успевает обработать всё, что нужно. Вопрос: как грамотней сделать редирект на себя после каждой итерации? и поможет ли это?
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    воровать не хорошо.
     
  3. basist

    basist Активный пользователь

    С нами с:
    7 июл 2007
    Сообщения:
    388
    Симпатии:
    0
    Адрес:
    Орел
    Хорошо, в седующий раз буду писать что-нибудь типа "у меня скрипт считает тройные интегралы..." и т.д.:)

    и всё же, как?
     
  4. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    Тогда время выполнения еще более увеличится. Что мешает просто:
    PHP:
    ?
    и пусть 100 секунд ворует.
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    PHP:
    1.  
    2. <?php
    3.  
    4. header('location: ./');
    5.  
    6. ?>
     
  6. basist

    basist Активный пользователь

    С нами с:
    7 июл 2007
    Сообщения:
    388
    Симпатии:
    0
    Адрес:
    Орел
    +Sten+
    max_execution_time = 30 :(
     
  7. basist

    basist Активный пользователь

    С нами с:
    7 июл 2007
    Сообщения:
    388
    Симпатии:
    0
    Адрес:
    Орел
    а если скрипт сначала должен записать инфу в файл, а потом саморедиректится?
    например у меня скрипт должен обработать все значения из файла. значения разделены знаком |
    напрмер за 30 секунд скрипт успевает обработать и записать только 10 значений.

    PHP:
    1.  
    2. <?php
    3.  
    4. if (!isset($start)){$start = 0;} // если значение не передано, то начинаем с нулевой позиции
    5. $from = file_get_contents('from.txt');
    6. $val = explode("|", $from);
    7.  
    8. $file_pointer2 = fopen("to.txt", "a"); // открываем файл для записи
    9.  
    10. for ($i=$start; $i<$start+10; $i++) {
    11.  
    12.    /*
    13.    .
    14.    .   здесь идёт обработка значений
    15.    .  
    16.    */
    17.  
    18.    fwrite($file_pointer2, $val2); // пишем полученные данные в файл
    19.  
    20. }
    21.  
    22.    fclose($file_pointer2); // закрываем файл
    23.  
    24. $start += 10; // значение, которое передадим при редиректе, чтобы знать, с какого элементва начать обработку
    25.  
    26. header("location: 1.php?start=$start"); // а здесь должен быть редирект, но так естественно не пашет, ибо хедэр должен быть вначале
    27.  
    28. ?>
    29.  
    30.  
    31.  
     
  8. basist

    basist Активный пользователь

    С нами с:
    7 июл 2007
    Сообщения:
    388
    Симпатии:
    0
    Адрес:
    Орел
    думал сделать так:
    PHP:
    1.  
    2. <?php
    3. echo "<head><meta http-equiv=\"refresh\" content=30; url=1.php?start=$start></head>";
    4. ?>
    5.  
    но тоже не работает. значение не передаётся
     
  9. Штаны

    Штаны Guest

    Если скрипт долго работает, то вряд ли пользователь будет ждать результаты работы этого скрипта :)
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Я $_GET использую, когда провожу тесты, но если больше 20 редиректов, браузер не пускает.
     
  11. basist

    basist Активный пользователь

    С нами с:
    7 июл 2007
    Сообщения:
    388
    Симпатии:
    0
    Адрес:
    Орел
    проблему, хотя и криво, но решил. путём записи в файл значения, с которого которого должна начатся обработка при каждой последующей итерации. и редирект на себе без всяких параметров.
    Штаны,
    а пользователем является заказчик, которому надо то, что сказал 440Hz. так что ждать он будет:)
     
  12. Штаны

    Штаны Guest

    Понял. Раз пользователь знает на что идет - то это другое дело :)