0

我正在制作打开目录并在文件中写入内容的 php 脚本。问题出在目录中。目录名称不固定,每次都会更改名称“dir + some random number”。

有什么方法可以制作这样的东西我需要那个功能“任何东西”

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

4 回答 4

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..";
?>

函数anything 是dir + 一些随机数。只需使用php随机...

// this function returns a random number from 0 to 100000
function random()
{
    echo rand(0, 100000);
}
于 2012-05-15T14:12:11.867 回答
0

除非我错过了什么,否则你不能做

function anything(this $str){}
于 2012-05-15T14:18:49.443 回答
0

在混淆之后,您似乎想要创建一个函数,该函数将创建一个唯一的文件名,然后将其应用于目录路径,使用 rand() 不会获得唯一的 id,因为rand()有时不是那么 rand,加上每个当你制作一个新文件时,它会降低一个新的随机文件的机会。使用uniqid()和 md5 它将从 uniqid/microtime 创建一个 128 位 alpha 数字散列,返回相同散列的几率非常小,甚至没有:

所以你应该做类似的事情:

<?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 时您将失去对该文件/文件夹的引用。

于 2012-05-15T14:25:11.677 回答
-1

我在这里错过了什么吗?

编写一个anything返回任何你想要的函数的函数。这是非常基本的 PHP 编码。

于 2012-05-15T14:13:47.780 回答