1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Подскажите один момент

Тема в разделе "Web - программирование", создана пользователем vital, 18 дек 2009.

  1. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    Вобщем есть переменная
    $time = 10; // Время в секундах
    Нужно каждые $time секунд на странице выводить другой текст

    У меня родилось следующее.
    PHP:
    function write_time()
    {
    $h fopen("time.inc","w");
    $mtime microtime(); 
    $mtime explode(" ",$mtime); 
    $mtime $mtime[0]; 
    $tstart $mtime
    fwrite($h,strval($tstart));
    }
    ===========
    if (!
    file_exists("time.inc"))
    {
    write_time(); 
    }
    $tstart=intval(file_get_contents("time.inc"));
    $mtime microtime(); 
    $mtime explode(" ",$mtime); 
    $mtime $mtime[0]; 
    $tend $mtime;    
    if ((
    $tend-$tstart)>$time)
    {
    write_time();
    // действия
    }else{ 
    //дейстивя 
    }
    Не работает.. Почему? Еще вот подумал, что возможно, не в этом ошибка. Приведу всю функцию..
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">вот эту</div></div><div class="sp-body"><div class="sp-content">
    PHP:
    function show_changed_text($lenght=150,$go=false)
    {

    if (!
    file_exists("time.inc"))
    {
    write_time(); 
    }

    global 
    $number,$cwords;
    static 
    $add;
    $data file_get_contents("kontent.txt");
    $data preg_replace("'\s+'"," ",$data);
    $data_len strlen($data);

    $tstart=intval(file_get_contents("time.inc"));
    $mtime microtime(); 
    $mtime explode(" ",$mtime); 
    $mtime $mtime[0]; 
    $tend $mtime;
    echo 
    ceil($tend-$tstart);    
    if (
    ceil($tend-$tstart)>$time//Если прошло больше $time сек, то выводим текст из другого места
    {
    write_time();
    $from $step*$number+rand(0,1000)+$add//стартовый символ
    $from min(max(0,$data_len-$lenght),$from);
    }else{ 
    // Если меньше - то выводим изначальный
    $from $step*$number+$add;
    $from min(max(0,$data_len-$lenght),$from);
    }
    //все что ниже с временем не связано..
    $step $data_len/$cwords;
    $data substr($data,$from,$lenght);
    $add+=$lenght;
    if(!
    $add===false)
    {
    $go--;
    global 
    $keyword;
    $l 0;
    if(
    preg_match_all("'((.{".$go."})(\S*))\s'si",$data,$arr))
    {
    static 
    $z;
    global 
    $keyword,$hglght;
    $l strlen(join($arr[1]));
    foreach (
    $arr[1] as $part)
    {
    $addon[] = $part;
    $addon[] = sprintf($hglght[$z%count($hglght)],$keyword);
    $z++;
    }
    }
    $addon[] = substr($data,$l);
    $data join(" ",$addon);

    }
    return 
    $data;
    }
    Т.е. вроде бы текст должен меняться раз в 10 сек, а он генерируется каждый раз новый, т.е. else {..} не срабатывает вообще.
     
Загрузка...

Поделиться этой страницей