2012-05-15 23 views
0

我正在使PHP腳本打開的目錄,並在文件中寫東西。 問題出在directory.Directory名稱不固定,它每次更改名稱「dir +一些隨機數」。PHP的任何字符串

有沒有什麼辦法讓這樣的事情 我需要的功能「東西」

<?php 
$directory = "files/dir".anything()."/other.."; 
?> 
+0

所以問題在於你無法將文件寫入目錄,因爲它可能不存在,正確嗎? –

+0

...或者您需要一種方法來確保新目錄名稱是唯一的問題?請更具體的你會得到誤導的答案。如果可能的話,展示更多代碼來展示您的問題。 –

+0

好的,這裏又一次: 我有名稱目錄「目錄和一些隨機數」,我需要知道什麼是該目錄中的隨機數.. –

回答

0

當然......第一次檢查,如果你想要的目錄存在。如果不創建它。

<?php 
    // check if dir exists, if not create it 
    if(!is_dir("files/dir".anything()."/other..")) 
     mkdir("files/dir".anything()."/other.."); 

    // ... rest of code here 
    $directory = "files/dir".anything()."/other.."; 
?> 

函數什麼是dir +某個隨機數。只需使用php隨機...

// this function returns a random number from 0 to 100000 
function random() 
{ 
    echo rand(0, 100000); 
} 
+0

但是,我怎樣才能使功能「任何」? –

+0

你不能。沒有像c#這樣的擴展 –

+0

呃...我迷失在你想要的東西上。你在查明困難方面做得不是很好 – Frankie

-1

我在這裏錯過了什麼嗎?

寫一個函數anything它返回任何你想要的。這是非常基本的PHP編碼。

+0

我不知道「我想要什麼」,因爲目錄名稱是不固定的,它總是變化.. –

+0

但是你想要做什麼?你想創建一個組成目錄名稱的一部分的隨機數字?然後創建一個函數,它返回一個隨機字符串('(md5(microtime())'?)並將其存儲在一個變量中,然後您可以使用該變量創建,使用和刪除該目錄。那麼如果不將返回值存儲在變量中,則會遇到問題 – DaveyBoy

0

除非我失去了一些東西,你不能這樣做

function anything(this $str){} 
0

似乎要創建一個將創建一個唯一的文件名,然後應用到該目錄路徑的功能的混亂後,用rand()不會獲得唯一的id,因爲rand()有時並不那麼隨便,再加上每次創建新文件都會降低新隨機文件的可能性。隨着uniqid()與MD5它將創建uniqid/microtime中128位字母數字哈希,其返回相同的散列的機率相當渺茫無法比擬的:

所以,你應該做的是這樣的:

<?php 
/** 
* Function to create 128bit unique hash string. 
* 
* @return string 
*/ 
function anything(){ 
    return md5(uniqid(rand(), true)); 
} 

/* 
You should store value in a variable if you need to use it further along 
or in the future. 
*/ 
$uniq_token = anything(); 

$directory = "files/".$uniq_token."/other.."; 
?> 

您需要將$uniq_token存儲在數據庫中的某個位置,否則當您嘗試檢索ect時,您將忽略對該文件/文件夾的引用。