2014-08-30 55 views
1

我想運行一個PHP腳本,使用戶能夠創建文件並將其保存到服務器上命名約定如下:< BR />創建文件具有會話ID和計數器名稱

$i =1 ; 
$fileName = 'txt'. session_id() . $i . ".txt" ; 
$i++; 

出放:txtmtbd6146ljq9fhd7sindi3njj1.txt

這裏是我的代碼有

<?php 
session_start(); 

$i = $_SESSION['views']=1; 
$fileName = 'txt'. session_id() . $i ; 
// increase for next saving as a user may save many 
$i++; 

$theFileName = $fileName".txt"; 
$theFileHandle = fopen($theFileName, 'w') or die("can't open file"); 
fclose($theFileHandle); 

可以請讓我知道我該怎麼做?謝謝

+0

您可能必須在關閉前寫入一些內容...? – 2014-08-30 03:41:56

+0

嗨,喬,感謝您的回覆。現在請不要擔心這部分。我需要的是創建一個計數器現在被添加到文件名的末尾 – 2014-08-30 03:44:00

+0

不應該是你增加文件裏面的內容而不是文件名?因爲會發生什麼情況是,你只會在每次刷新時產生一個新的文件,並且會話編號相同 – Ghost 2014-08-30 03:44:58

回答

1

你的代碼缺少什麼是你沒有遞增的意見。例如:

session_start(); 
$path = 'user_counters_folder/'; 
// initialize counter 
if(!isset($_SESSION['views'])) { 
    $_SESSION['views'] = 1; 
} else { 
    // increment 
    ++$_SESSION['views']; 
} 

$fileName = 'txt'. session_id() . $_SESSION['views']; 
$theFileName = $fileName . '.txt'; 
$theFileHandle = fopen($path . $theFileName, 'w') or die("can't open file"); 
fwrite($theFileHandle, $_SESSION['views']); 
fclose($theFileHandle); 

旁註:確保您有權寫入。

我的建議是用每個會話的會話ID和增量來創建一個文件。將會話標識寫爲文件名,然後將計數器放入文件中。

+0

非常感謝幽靈,這正是我正在尋找的 – 2014-08-30 04:01:15

+0

您能否請讓我知道如何要做到這一點,這對這個有什麼好處? – 2014-08-30 04:02:14

+0

@MonaCoder實際上它不是一個好處,它認爲這將是實現它的合乎邏輯的方式,因爲你在同一個會話上的同一個文件上寫入(意味着你在每個會話上寫入一個文件),而不是產生每個會話的多個文件。 – Ghost 2014-08-30 04:04:02