包含特殊字符的Php文件夹名称

包含特殊字符的Php文件夹名称,php,Php,我有一个网站,我在那里创建一个表格文件。用户必须写一个公司名称,它将创建一个带有公司名称的文件夹,并将公司名称保存在我的数据库中,稍后在我的网站上执行某些步骤时,以下是我如何创建文件夹的示例: $folder_name = format_folder_name($entreprise->getNom()); $path_file = $path_upload . '/' . $folder_name; createFolderIfNotExist($path_file); 最近我遇到了一

我有一个网站,我在那里创建一个表格文件。用户必须写一个公司名称,它将创建一个带有公司名称的文件夹,并将公司名称保存在我的数据库中,稍后在我的网站上执行某些步骤时,以下是我如何创建文件夹的示例:

$folder_name = format_folder_name($entreprise->getNom());
$path_file = $path_upload . '/' . $folder_name;
createFolderIfNotExist($path_file);
最近我遇到了一个案例,公司名为“LALAL&OMOMO”(当然是假名^^) 我已经正确创建了一个文件夹,但由于某些原因,它无法正常工作,因为公司名称中有“&”。当我想重用我的代码中的文件夹时,找不到ID,因为在“&”之后是什么,它被认为是一个不同的命令。 如何在文件夹名中正确地保存和创建文件夹(&I)?(我不想更改公司名称)

下面是我想上传公司徽标时的一个示例:

//如果不存在,则创建文件夹公司名称
$enterprise\u folder\u name=格式化\u folder\u name($\u POST[“创建企业名称”]);
$path\u file=$path\u upload.'/'$企业名称;
createFolderIfNotExist($path_文件);
//创建文件夹“徽标”,如果不存在
$path_文件=“/Logo”;
createFolderIfNotExist($path_文件);
当我查看文件夹时,我必须用我的公司名称创建一个文件夹

  • 拉拉尔和奥莫莫
  • 拉拉尔·奥莫莫
徽标保存在第二个文件夹中


我很惊讶在一些其他字符(例如“”)中使用了相同的大小写。

使用
正则表达式
无效文件夹名
替换为
普通字符

$path_file = $path_upload . '/' . preg_replace("/[^a-z0-9\_\-\.]/i", '', $folder_name);

您使用的操作系统可能存在重复,我可以在Windows和Ubuntu上创建同名目录。。。这是我现在可以访问的所有的操作系统都是Debian,我可以用“&”纠正文件夹,但是稍后我的代码需要在这个文件夹里面,我不能在“&”被认为是一个不同的命令包DIR名称之后写的东西。“但后来我的代码,当它需要进入这个文件夹,我不能,因为什么是写在“&”被认为是一个不同的命令”-请显示你实际上是在这一点上做什么。