Пробле с чтением из фаила после записи в него

Кирс

Guest
В первом первом случае у тебя проблема с отсуствием clearstatcache() (в виндах она работает просто замечательно ) после строки
PHP:
if(!$old_all_size=fread($fp, filesize($sys_dir.$f_check_sum))) {
т.е. в кэше сохраняется размер файла $sys_dir.$f_check_sum в 0 байтов, а при последующей попытке чтения размера $old_all_size=fread($fp, filesize($sys_dir.$f_check_sum)); у тебя соответсвенно из файла читается 0 байтов.
 

Кирс

Guest
Во втором случае работет потому, что сначала пишется в файл "1", а потом уже проходит первая проверка размера файла, равная 1-му байту.
 

Кирс

Guest
Сам недавно на такой прикол натолкнулся... чуть с ума не сошол. "Спасибо" переводчикам мануала php3 на русский язык. Только оригинал мана php4 и помог...
 

col

Guest
to Кирс
Во !!!!! МОЛОТОК. 5 Баллов и банку соленых огурцов в плечи. :) Сенкс. Работает.
С первым разобрались.
А на счет второго. Это всё понятно, что сначала пишется в файл "1", а потом уже проходит первая проверка размера файла, равная 1-му байтуно. Я про то, что если ты заметил, там указатель закрываеться после записи а перед первой проверкой не открываеться и всё работает. Вот где прикол.
PS
А Ромик мне с самого начала говорил про clearstatcache(), а я млин. Я его не туды сувал. Куды надо было. И где же ты рань был :) А Кирс ?
 

col

Guest
Дурдом. Если убрать закрытие $fp после записи, то не пахает. Ну ваще ничего не понимаю. Мраааак
 

col

Guest
to Дес
:) Спасибо за линки. Но вроде там у меня регами и не пахнет. Так что сравнение 8 против 10. Имеет смысл. :)
 

col

Guest
Ну всё !!!!!!! Понял на конец таки, в чем тут дело. Чуть мозг не вывехнул.
Если кому интерестно. см ниже.
Как уже писал Кирс --- Во втором случае работет потому, что сначала пишется в файл "1", -- потом закрываеться указатель. выходим из первого if. (А вот и сама фишка). Вторая проверка срабатывает,
PHP:
if(!$old_all_size=fread($fp, filesize($f_check_sum)))
то есть в
PHP:
$old_all_size
ничего не считываеться и именно из-за того, что закрыт указатель. И скрипт входит в if. Ну а дальше уже создаём указатель и намана читаем данные.
PS
Вот такие вот батоны. :)
 
Сверху