10

このコードを使用してアップロードされたファイルを保存していますが、問題は、特殊文字とスペースを含む名前のファイルを許可していることです。たとえば、許可しています

hi how are you

しかし、スペース、特殊文字などを許可したくありません。これが私のコードです.uriでpreg_replaceを試しましたが、その後ファイルをアップロードしようとしましたが、何もアップロードされませんでした。

function save_file($file) {
    $allowed_ext = array('jpg','png','gif','jpeg');
    $ext = $file['name'];
    $ext = strtolower($ext);

    if (in_array($ext, $allowed_ext)) {
        die('Sorry, the file type is incorrect:'.$file['name']);
    }

    $fname = date("H_i",time()).'_'.get_rand(5);
    $dir = date("Ym",time());
    $folder = 'uploads/userfiles/'.$dir;
    $uri = $folder.'/'.$fname.'.'.$ext;

    if (!is_dir($folder))
        mkdir($folder, 0777);

    if (copy($file['tmp_name'],$uri))
        return $uri;
    else {
        return false;
    }
}
4

1 に答える 1

34

文字列から非文字を削除するには、次の正規表現を使用できます

$input = preg_replace("/[^a-zA-Z]+/", "", $input);
于 2012-06-10T18:33:27.733 に答える