php - 内含特殊字符的 PHP 文件夹名称
问题描述
我有网站,可以从表单创建文件。用户必须写一个公司名称,它将使用公司名称创建一个文件夹并将公司名称保存在我的数据库中,稍后在我的网站上进行一些步骤时,这是我如何创建文件夹的示例:
$folder_name = format_folder_name($entreprise->getNom());
$path_file = $path_upload . '/' . $folder_name;
createFolderIfNotExist($path_file);
最近我遇到了一个案例,公司是“LALAL & OMOMO”(当然是假名^^)我已经正确创建了一个文件夹,但由于某些原因,它无法正常工作,因为公司名称中的“&” . 当我想在我的代码中重用文件夹时,由于“&”之后的内容而找不到 id,它被视为不同的命令。
如何使用文件夹名称中的 & 正确保存和创建文件夹?(我不想更改公司名称)。
这是我要上传公司徽标时的示例:
// create folder company name if not exist
$entreprise_folder_name = format_folder_name($_POST["create_entreprise_nom"]);
$path_file = $path_upload . '/' . $entreprise_folder_name;
createFolderIfNotExist($path_file);
// create folder "Logo" if not exist
$path_file .= "/Logo";
createFolderIfNotExist($path_file);
当我查看文件夹时,我必须使用我的公司名称进行文件夹
- LALAL_&_OMOMO
- LALAL__OMOMO
徽标保存在第二个文件夹中
例如,我害怕与其他一些字符(例如“'”)有相同的情况。
解决方案
使用aregex
替换invalid folder name
。normal characters
$path_file = $path_upload . '/' . preg_replace("/[^a-z0-9\_\-\.]/i", '', $folder_name);
推荐阅读
- c++ - 给定返回 unique_ptr 的函数,如何使类成为(部分)指针的所有者
- powershell - 使用预定义的密码列表使用 7zip 解压缩存档
- rust - 是否可以在包含 FnMut 闭包特征对象的结构上调用克隆?
- python - 带有字典中列表的 Ansible 循环
- python - 为什么 AES 不解密我的加密文本?
- linux - 自动创建文件夹并移动文件
- javascript - 使用角度 8+ 的数据标签顶点图问题
- c++ - 如何声明作为函数参数的数组,如果它们的大小由程序开始时的用户输入确定
- fortran - Fortran 的 C_INCLUDE_PATH 等效项?
- function - 如何获取指向结构的指针,作为函数中的值给出?