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

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

  1. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    Вобщем есть переменная
    $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 {..} не срабатывает вообще.
     
Загрузка...

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