Forum Webscript.Ru
Программирование => PHP => Тема начата: не не от 10 Августа 2002, 23:04:35
-
function write_prosmotr($i, $n, $id_mes){
global $DB;
$fr=file("$DB/$i/$n/forum.dat");
$j=col_mes_forum($i, $n)-1;
for($m=0; $m<=$j; $m++){
$fd=chop($fr[$m]);
$s=explode("<~>", $fd);
$k=chop($s[0]);
if($k==$id_mes){
$b=chop($s[7]);
$s[7]=$b+1;
$w=implode("<~>", $s);
$f=fopen("$DB/$i/$n/forum.dat", "a+");
flock($f, LOCK_EX);
$read=fread($f, filesize("$DB/$i/$n/forum.dat"));
$nl=chop($fr[$m]);
$read=str_replace($nl, $w, $read);
ftruncate($f, 0);
fwrite($f,"$read");
flock($f, LOCK_UN);
fclose($f);
$l=1;
break;
}
else{$l=0;}
}
return $l;
}
почемуто при если в
файле только одна строка то при fwrite($f,"$read"); ничего непишется и невыдаёт никаких ошибок а если больше одной строки то всё нормально
-
$j=col_mes_forum($i, $n)-1;
А эта функция "как-то хитро" считает записи? Наверное она возвращает 0, а из него вычитается еденица, и цикл не запускается, чтобы это проверить посмотри что возвращает функция col_mes_forum(), и расставляй комментарии, а то только екстрасенсы знают что делает "неизвестная" функция, например col_mes_forum(), chop(). Да и имена у твоих переменных странные $w, $b, $s...
-
fwrite($f,"$read");
Кавычки лишние...
-
Кавычки лишние...
В данном случае это не критично.
-
причём фаил непишется только у меня на домашнем компе а если запустить скрипт где нибудь на сервере то всё пашет
-
chop() - стандартная функция...
-
chop() - стандартная функция...
ну да и что?
-
не не
А у тебя случаем не Win9x/ME стоит?
-
А у тебя случаем не Win9x/ME стоит?
win me
-
Все гораздо проще. Закомментируй все flock в своем скрипте. Будет работать.
[OFF]Либо поставь W2K и не будет гимора с flock\'ами[/OFF]
-
Все гораздо проще. Закомментируй все flock в своем скрипте. Будет работать.
закоментировал, и всёравно непишет :(
причём пишет только если открыть фаил с параметром w или w+
а если r, r+, a, a+ то непишет :mad:
-
причём пишет только если открыть фаил с параметром w или w+ а если r, r+, a, a+ то непишет
читаем мануал:
\'r\' - Open for reading only; place the file pointer at the beginning of the file.
а путь "$DB/$i/$n/forum.dat" правильно указан? Может тут где собака порылась?
-
Note: On systems which differentiate between binary and text files (i.e. Windows) the file must be opened with \'b\' included in fopen() mode parameter.
http://www.php.net/manual/en/function.fwrite.php
зачем, кстати используется здесь fwrite а не fputs
-
\'r\' - Open for reading only; place the file pointer at the beginning of the file.
сори ошибся
правильно указан? Может тут где собака порылась?/quote]
нет, потому что он же его читает
Note: On systems which differentiate between binary and text files (i.e. Windows) the file must be opened with \'b\' included in fopen() mode parameter.
а по русски можно :)
зачем, кстати используется здесь fwrite а не fputs
а какая разница, ведь fputs это клон fwrite, но даже если и fputs написать то всёравно непашет
-
а по русски можно
http://www.translate.ru/rus/url/tu_body.php?PHPSESSID=&autotranslate=true&referer=&url=http%3A%2F%2Fforums.webscript.ru%2Fshowthread.php%3Fs%3D%26threadid%3D7536#post50387
-
а какая разница, ведь fputs это клон fwrite
никакой, я перепутал
-
[OFF]
А вот интересная функция fgets()
Кто бы мне объяснил для чего ее создатели сделали, что параметр length нужно указывать больше на 1-цу. Из каких таких соображений?
[/OFF]