Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Зацикливание скрипта

Сообщения:  [1-7] 

 
 автор: BlackWind   (17.01.2005 в 13:03)   письмо автору
 
   для: XPraptor   (17.01.2005 в 12:02)
 

<SCRIPT language="JavaScript">
this.location.reload();
</SCRIPT>

ето, наверное, поможет. Спасиба

   
 
 автор: XPraptor   (17.01.2005 в 12:02)   письмо автору
 
   для: glsv (Дизайнер)   (17.01.2005 в 11:15)
 

Комбинировать можно, если PHP таймаут ставит, например вот так:
Страница состоит только из этого кода и все:
<?php
... считываем файл
... записываем файл
?>
<SCRIPT language="JavaScript">
this.location.reload();
</SCRIPT>

А если вместо this.location.reload(); написать:
window.open(this.location, 'new_window'); то такое начнется %-[]

   
 
 автор: glsv (Дизайнер)   (17.01.2005 в 11:15)   письмо автору
 
   для: BlackWind   (15.01.2005 в 08:52)
 

>Если делать типа
>....
>то браузер ругается по таймауту.

Это PHP ругается. PHP-скрипты не могут выполняться бесконечно. У них стоит ограничение на время выполнения. Секунд 30. Нужно решать Вашу задачу другими приемами.

   
 
 автор: glsv (Дизайнер)   (17.01.2005 в 11:11)   письмо автору
 
   для: BlackWind   (17.01.2005 в 08:05)
 

>Но нужно, чтобы считывание шло неприрывно.
Так а что считывать если файл кончился?

Бесконечно считать все равно не получится. Время выполнения скрипта, выставленное на сервере, будет превышено.

Т.е. не ясны условия задачи

   
 
 автор: BlackWind   (17.01.2005 в 08:05)   письмо автору
 
   для: cheops   (15.01.2005 в 12:47)
 

while(!feof($sr))
{
$line = fgets($sr);
// Преобразуем строку $line
fputs($ds,$line);
}

Получается, что если достигнут конец файла, то цикл заканчивается. Но нужно, чтобы считывание шло неприрывно.

   
 
 автор: cheops   (15.01.2005 в 12:47)   письмо автору
 
   для: BlackWind   (15.01.2005 в 08:52)
 

Для этого можно воспользоваться функцией feof(), которая принимает дискриптор открытого файла и возвращает true, если достигнут конец файла и false в противном случае.
<?php
  
// Имя файла-источника
  
$source "count.txt";
  
// Имя файла-приёмника
  
$destination "count_new.txt";
  
// Открываем файл-источник для чтения
  
$sr fopen($source,"r");
  
// Открываем файл-приёмник для записи
  
$ds fopen($destination,"w");
  
// В цикле перебрасываем содержимое
  // файла-источника в файл-приёмник
  
while(!feof($sr))
  {
    
$line fgets($sr);
    
// Преобразуем строку $line
    
fputs($ds,$line);
  }
  
// Закрываем файл-источник
  
fclose($sr);
  
// Закрываем файл-приёмник
  
fclose($ds);
?>

Кстати, можно здорово сократить время выполнения скрипта и состояния когда файлы заняты скриптом, если читать содержимое файла целиком в какую-нибудь буферную переменную $buffer:
<?php
  
// Имя файла-источника
  
$source "count.txt";
  
// Имя файла-приёмника
  
$destination "count_new.txt";
  
// Открываем файл-источник для чтения
  
$sr fopen($source,"r");
  
// Извлекаем содержимое файла
  // в буферную переменную
  
$buffer fread($sr,filesize($source));
  
// Закрываем файл-источник
  
fclose($sr);

  
// Модифицируем строку $buffer

  // Открываем файл-приёмник для записи
  
$ds fopen($destination,"w");
  
// Перезаписываем содержимое файла-приёмника
  
fwrite($ds,$buffer);
  
// Закрываем файл-приёмник
  
fclose($ds); 
?>

   
 
 автор: BlackWind   (15.01.2005 в 08:52)   письмо автору
 
 

Люди подскажите, как сделать бесконечный цикл, но чтобы браузер не ругался. Нужно, допустим, считать один файл и записать в другой.
Если делать типа
do
{
считываем
обрабатываем
записываем
}
while (1);
то браузер ругается по таймауту.

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования