2009-06-15 43 views
0
每次我打開該文件
$dirname1 = '../counters'; 
$dirN = '../uploads'; 
$extens = ".txt"; 
$fh = fopen(".$dirname1/$filename.$extens", "w"); 



if(fopen(".$dirN/$filename.", "r")) { 
    $count_my_page = (".$dirname1/$filename.$extens"); 
    $hits = file($count_my_page); 
    $hits[0] ++; 
    $fp = fopen($count_my_page , "w"); 
    fputs($fp , "$hits[0]"); 
    fclose($fp); 
    echo $hits[0]; 
} 

,計數應該更新....但它只會發生在第一次.....增加了對數讀

回答

0

至於算你的意思是$ count_my_page var?它在if範圍內聲明,因此每個循環都被創建爲一個新循環。 嘗試在外面聲明。

+0

$ count_my_page是一個文件名,它的if語句中的第一道防線。 – SilentGhost 2009-06-15 13:19:38

0

這是所有在同一個文件?如果是這樣,你的第一個使用「w」模式的fopen將在你讀取它之前截斷該文件。

+0

他首先用文件讀取它 – SilentGhost 2009-06-15 13:20:12

+0

我的意思是第4行的fopen()。它似乎在任何閱讀之前? – 2009-06-15 13:22:26

1

認爲這可能是與增量運算符(++)做,試試這個:

$hits = file($count_my_page); 
$nHits = ((int) $hits[0]) + 1; 
$fp = fopen($count_my_page , "w"); 
fputs($fp , $nHits . ""); 
fclose($fp); 
echo $nHits;