为什么这段代码每次执行都会增加两点

时间:2013-07-20 01:26:39

标签: php

为什么每次执行此代码时都会在 a.txt 中添加两个指向数字

<?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 中添加两个指向数字,并且当使用a['number'] += 2时将<4>点添加到数字< / strong>在 a.txt

更新:我将$temp .= "$a:$b\r\n";更改为$temp .= "$a :$b\r\n";,我的数据保存在此结构中:

stop  :0    
number  :6
dor  :3
number :1

但为什么?

1 个答案:

答案 0 :(得分:0)

最后我的问题解决了。

我有两个关于chrome的扩展,它正在解决这个问题。

1- Web服务器通知程序

2- Web技术通知程序

禁用这两个扩展后我的问题解决了。

我从这个页面找到了答案: php mail duplicates