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

标签 php

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

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;
    }
}

最佳答案

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

$input = preg_replace("/[^a-zA-Z]+/", "", $input);

关于php - 从字符串中删除空格和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971233/

相关文章:

php - 当前 PHP 脚本相对于文档根目录的路径

php - 在 PostgreSQL 数据库的 bytea 字段中存储图像

javascript - fetch 不发送自动填充的输入

php - php sdk 中按前缀的 Azure 列表 Blob

javascript - 使用 JavaScript 刷新 div 标签时刷新整个页面

php - 将字符串和变量传递给 php 函数

php - Laravel - 将数据传递到电子邮件 View

php - CakePHP:使用过滤器部署数据库更改

php - 在 php 上发布反向时间

javascript - Yii 为 JavaScript 编码数组