- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
<?
$text = @file("MySql/base123/reg/$log.dat");
$udata = explode(":||:", $text[0]);
$udata[100] = round($udata[100] + 1);
$text = $udata[0] .':||:'. $udata[1] .':||:'. $udata[2] .':||:'. $udata[3] .':||:'. $udata[4] .':||:'. $udata[5] .':||:'. $udata[6] .':||:'. $udata[7] .':||:'. $udata[8] .':||:'. $udata[9] .':||:'. $udata[10] .':||:'. $udata[11] .':||:'. $udata[12] .':||:'. $udata[13] .':||:'. $udata[14] .':||:'. $udata[15] .':||:'. $udata[16] .':||:'. $udata[17] .':||:'. $udata[18] .':||:'. $udata[19] .':||:'. $udata[20] .':||:'. $udata[21] .':||:'. $udata[22] .':||:'. $udata[23] .':||:'. $udata[24] .':||:'. $udata[25] .':||:'. $udata[26] .':||:'. $udata[27] .':||:'. $udata[28] .':||:'. $udata[29] .':||:'. $udata[30] .':||:'. $udata[31] .':||:'. $udata[32] .':||:'. $udata[33] .':||:'. $udata[34] .':||:'. $udata[35] .':||:'. $udata[36] .':||:'. $udata[37] .':||:'. $udata[38] .':||:'. $udata[39] .':||:'. $udata[40] .':||:'. $udata[41] .':||:'. $udata[42] .':||:'. $udata[43] .':||:'. $udata[44] .':||:'. $udata[45] .':||:'. $udata[46] .':||:'. $udata[47] .':||:'. $udata[48] .':||:'. $udata[49] .':||:'. $udata[50] .':||:'. $udata[51] .':||:'. $udata[52] .':||:'. $udata[53] .':||:'. $udata[54] .':||:'. $udata[55] .':||:'. $udata[56] .':||:'. $udata[57] .':||:'. $udata[58] .':||:'. $udata[59] .':||:'. $udata[60] .':||:'. $udata[61] .':||:'. $udata[62] .':||:'. $udata[63] .':||:'. $udata[64] .':||:'. $udata[65] .':||:'. $udata[66] .':||:'. $udata[67] .':||:'. $udata[68] .':||:'. $udata[69] .':||:'. $udata[70] .':||:'. $udata[71] .':||:'. $udata[72] .':||:'. $udata[73] .':||:'. $udata[74] .':||:'. $udata[75] .':||:'. $udata[76] .':||:'. $udata[77] .':||:'. $udata[78] .':||:'. $udata[79] .':||:'. $udata[80] .':||:'. $udata[81] .':||:'. $udata[82] .':||:'. $udata[83] .':||:'. $udata[84] .':||:'. $udata[85] .':||:'. $udata[86] .':||:'. $udata[87] .':||:'. $udata[88] .':||:'. $udata[89] .':||:'. $udata[90] .':||:'. $udata[91] .':||:'. $udata[92] .':||:'. $udata[93] .':||:'. $udata[94] .':||:'. $udata[95] .':||:'. $udata[96] .':||:'. $udata[97] .':||:'. $udata[98] .':||:'. $udata[99] .':||:'. $udata[100] .':||:';
$fp = fopen("MySql/base123/reg/$log.dat", "a+");
flock($fp, LOCK_EX);
ftruncate($fp, 0);
fputs($fp, "$text");
fflush($fp);
flock($fp, LOCK_UN);
fclose($fp);
Попался скрипт браузерной игры. Автор - Bishop какой то. Это просто залежи позитива. Второй день ржунимагу.
> implode? нет, первый раз слышу
01. read
07. lock
09. write
11. unlock
нету там между ними блокировок ;-)
"file_get_contents и file_put_contents" - открывают и закрывают файл только во время (и на время) своего выполнения. Между использованием этих двух функций можно делать с файлом что угодно.
Куда, в таком случае подеваются данные отправленные из другого процесса?
В каком месте это видно?
Я прекрасно понимаю как работают "file_get_contents и file_put_contents". В оригинале написано тоже самое, никаких блокировок между чтением и записью.
А вообще там весь скрипт - один большой анекдот. ))
Причём начиная с идеи
Хотя если посмотреть на это с другой стороны, возможно стояла, как бы, задача о манипуляциях + сохранении некой информации в бардовскую БД.
Автор возможно столкнулся уже с подобной проблемкой (потеря архиважной информации), и, как бы, решил это дело - блокировкой файлов. Потом появилось всякое пятое-десятое - и всякие ftruncate/fflush...
--
А код, да, всё равно говно...
если нужно об этом думать, то file_get(put)_contents - вообще не вариант (если брать только эти функции).
— это фэйл
> зачем вообще так делать?
— так делать не надо :)
Для полного счастья надо было сделать такой: [:]|||[:]