Forum Webscript.Ru

Программирование => PHP => Тема начата: не не от 10 Августа 2002, 23:04:35

Название: непишется фаил
Отправлено: не не от 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"); ничего непишется и невыдаёт никаких ошибок а если больше одной строки то всё нормально
Название: непишется фаил
Отправлено: Tronyx от 11 Августа 2002, 01:07:23
Цитировать

$j=col_mes_forum($i, $n)-1;

А эта функция "как-то хитро" считает записи? Наверное она возвращает 0, а из него вычитается еденица, и цикл не запускается, чтобы это проверить посмотри что возвращает функция col_mes_forum(), и расставляй комментарии, а то только екстрасенсы знают что делает "неизвестная" функция, например col_mes_forum(), chop(). Да и имена у твоих переменных странные $w, $b, $s...
Название: непишется фаил
Отправлено: ThE0ReTiC от 11 Августа 2002, 17:46:26
Цитировать
fwrite($f,"$read");

Кавычки лишние...
Название: непишется фаил
Отправлено: GotZfild от 11 Августа 2002, 19:33:20
Цитировать
Кавычки лишние...

В данном случае это не критично.
Название: непишется фаил
Отправлено: не не от 15 Августа 2002, 18:34:00
причём фаил непишется только у меня на домашнем компе а если запустить скрипт где нибудь на сервере то всё пашет
Название: непишется фаил
Отправлено: Доктор от 15 Августа 2002, 20:53:46
chop() - стандартная функция...
Название: непишется фаил
Отправлено: не не от 15 Августа 2002, 22:29:14
Цитировать
chop() - стандартная функция...

ну да и что?
Название: непишется фаил
Отправлено: MadDog от 16 Августа 2002, 09:15:03
не не
А у тебя случаем не Win9x/ME стоит?
Название: непишется фаил
Отправлено: не не от 16 Августа 2002, 10:10:47
Цитировать
А у тебя случаем не Win9x/ME стоит?

win me
Название: непишется фаил
Отправлено: MadDog от 16 Августа 2002, 11:05:56
Все гораздо проще. Закомментируй все flock в своем скрипте. Будет работать.

[OFF]Либо поставь W2K и не будет гимора с flock\'ами[/OFF]
Название: непишется фаил
Отправлено: не не от 16 Августа 2002, 11:14:25
Цитировать
Все гораздо проще. Закомментируй все flock в своем скрипте. Будет работать.

закоментировал, и всёравно непишет :(

причём пишет только если открыть фаил с параметром w или w+
а если r, r+, a, a+ то непишет :mad:
Название: непишется фаил
Отправлено: MadDog от 16 Августа 2002, 13:12:07
Цитировать
причём пишет только если открыть фаил с параметром 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" правильно указан? Может тут где собака порылась?
Название: непишется фаил
Отправлено: AliMamed от 16 Августа 2002, 13:49:45
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
Название: непишется фаил
Отправлено: не не от 16 Августа 2002, 16:27:39
Цитировать
\'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 написать то всёравно непашет
Название: непишется фаил
Отправлено: AliMamed от 16 Августа 2002, 17:32:22
Цитировать
а по русски можно

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
Название: непишется фаил
Отправлено: AliMamed от 16 Августа 2002, 17:34:34
Цитировать
а какая разница, ведь fputs это клон fwrite

никакой, я перепутал
Название: непишется фаил
Отправлено: Доктор от 16 Августа 2002, 23:58:25
[OFF]
А вот интересная функция fgets()
Кто бы мне объяснил для чего ее создатели сделали, что параметр length нужно указывать больше на 1-цу. Из каких таких соображений?
[/OFF]