0

のディレクトリを開いてファイルに何かを書き込むphpスクリプトを作成しています。ディレクトリに問題があります。ディレクトリ名は修正されていません。名前「dir+乱数」で毎回変更されます。

このようなものを作る方法はありますか私はその機能を「何でも」必要とします

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

関数 any は 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

混乱の後、一意のファイル名を作成し、それをディレクトリ パスに適用する関数を作成したいようです。rand() は時々それほど rand ではないため、rand() を使用しても一意の ID得られません。新しいファイルを作成すると、新しいランダム ファイルの可能性が低くなります。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 を取得しようとしたときにそのファイル/フォルダーへの参照が失われます。

于 2012-05-15T14:25:11.677 に答える
0

私が何かを見逃していない限り、あなたはできません

function anything(this $str){}
于 2012-05-15T14:18:49.443 に答える
-1

ここで何か不足していますか?

anything必要なものを返す関数を書きます。これはかなり基本的な PHP コーディングです。

于 2012-05-15T14:13:47.780 に答える