首页 > 解决方案 > 内含特殊字符的 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);

当我查看文件夹时,我必须使用我的公司名称进行文件夹

徽标保存在第二个文件夹中

例如,我害怕与其他一些字符(例如“'”)有相同的情况。

标签: php

解决方案


使用aregex替换invalid folder namenormal characters

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

正则表达式


推荐阅读