このコードが実行されるたびにa.txtの番号に2 つのポイントが追加される理由:
<?php
function substr_unicode($str, $s, $l = null) {
return join("", array_slice( preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY) , $s, $l) );
}
function statusRead() {
$statusfile = file_get_contents('a.txt');
// for detecting and removing BOM (0xEF,0xBB,0xBF)
$statusfile = ord($statusfile[0]) == 239 ? ord($statusfile[1]) == 187 ? ord($statusfile[2]) == 191 ? substr_unicode($statusfile, 1) : $statusfile : $statusfile : $statusfile;
$statusfile = str_replace("\r",'',$statusfile);
$statusfile = explode("\n",$statusfile);
foreach ($statusfile as $a) {
$a = explode(":",$a);
if($a[0]) $temp[$a[0]] = @$a[1] ? $a[1] : null;
}
return $temp; // changed: (($statusfile = $temp; return $statusfile;)) to ((return $temp;))
}
function statusUpdate($data) {
$temp = '';
foreach ($data as $a => $b) {
$temp .= "$a:$b\r\n";
}
file_put_contents('a.txt', $temp);
}
$a = statusRead();
$a['number']++;
statusUpdate($a) ;
?>
これはa.txtの内容です:
stop:0
number:5
dor:3
a['number']++
毎回a.txtの数字に2ポイントを追加し、使用するとa.txtの数字に4ポイントを追加しますa['number'] += 2
更新:変更$temp .= "$a:$b\r\n";
し$temp .= "$a :$b\r\n";
て、データをこの構造に保存しました:
stop :0
number :6
dor :3
number :1
しかし、なぜ?