从字符串中删除空格和特殊字符

raj*_*aju 6 php

我正在使用此代码来保存上传的文件,但问题是它允许具有特殊字符和空格的名称的文件.例如它允许

hi how are you
Run Code Online (Sandbox Code Playgroud)

但我不想允许任何空间,特殊字符等.这里是我的代码.我尝试用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ohn 23

要从字符串中删除非字母,可以使用以下正则表达式

$input = preg_replace("/[^a-zA-Z]+/", "", $input);
Run Code Online (Sandbox Code Playgroud)

  • @raju这一行是自我解释的.努力. (3认同)
  • 为了允许您可以使用数字更新它 - $input = preg_replace("/[^a-zA-Z0-9]+/", "", $input); (3认同)