我正在使PHP腳本打開的目錄,並在文件中寫東西。 問題出在directory.Directory名稱不固定,它每次更改名稱「dir +一些隨機數」。PHP的任何字符串
有沒有什麼辦法讓這樣的事情 我需要的功能「東西」
<?php
$directory = "files/dir".anything()."/other..";
?>
我正在使PHP腳本打開的目錄,並在文件中寫東西。 問題出在directory.Directory名稱不固定,它每次更改名稱「dir +一些隨機數」。PHP的任何字符串
有沒有什麼辦法讓這樣的事情 我需要的功能「東西」
<?php
$directory = "files/dir".anything()."/other..";
?>
當然......第一次檢查,如果你想要的目錄存在。如果不創建它。
<?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);
}
我在這裏錯過了什麼嗎?
寫一個函數anything
它返回任何你想要的。這是非常基本的PHP編碼。
我不知道「我想要什麼」,因爲目錄名稱是不固定的,它總是變化.. –
但是你想要做什麼?你想創建一個組成目錄名稱的一部分的隨機數字?然後創建一個函數,它返回一個隨機字符串('(md5(microtime())'?)並將其存儲在一個變量中,然後您可以使用該變量創建,使用和刪除該目錄。那麼如果不將返回值存儲在變量中,則會遇到問題 – DaveyBoy
除非我失去了一些東西,你不能這樣做
function anything(this $str){}
似乎要創建一個將創建一個唯一的文件名,然後應用到該目錄路徑的功能的混亂後,用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時,您將忽略對該文件/文件夾的引用。
所以問題在於你無法將文件寫入目錄,因爲它可能不存在,正確嗎? –
...或者您需要一種方法來確保新目錄名稱是唯一的問題?請更具體的你會得到誤導的答案。如果可能的話,展示更多代碼來展示您的問題。 –
好的,這裏又一次: 我有名稱目錄「目錄和一些隨機數」,我需要知道什麼是該目錄中的隨機數.. –