从文件名字符串PHP中删除空格[重复]

Posted

技术标签:

【中文标题】从文件名字符串PHP中删除空格[重复]【英文标题】:remove spaces from a file name string PHP [duplicate] 【发布时间】:2016-12-05 12:04:42 【问题描述】:

我正在创建一个图片上传表单,当图片添加到我的数据库并添加到我的上传文件夹时,我需要将图片命名为用户名和狗名。

我目前的工作方式如下:

    我使用脚本顶部的 POST 方法来拉入用户 表格中的姓名和狗名。 然后我使用该信息重命名正在上传的文件/图像 然后我插入到我的数据库中

$user_name = $_POST['user_name'];
$dog_name  = $_POST['dog_name'];

$file_name = $imgDir . $user_name .'-'. $dog_name .'-'. $random_number . $ext;

插入表格时,我使用以下内容:

'file_name' => str_replace("../path/to/images/", "", $file_name),

文件名的当前输出是这样的: John-Fido-123456.jpg

如果用户这样输入他们的姓氏,我将如何删除文件名中的空格?

John Doe-Fido Doe-123456.jpg


更新:感谢@HiDeo,我使用了他发布的 dup 链接,并且能够像这样弄清楚。

使用 Post 方法获取我需要的名称。我像这样对空格进行了条带化​​,它适用于数据库中的文件名和文件夹中的实际图像。

$user_name  =   $_POST['user_name'];
$dog_name   =   $_POST['dog_name'];


$user_name = preg_replace('/\s+/', '', $user_name);
$dog_name  = preg_replace('/\s+/', '', $dog_name );

【问题讨论】:

@HiDeo 成功了!谢谢。 【参考方案1】:

你可以使用:

'file_name' => str_replace(" ", "", $file_name);

好吧,这将用任何内容替换所有空格...(即删除所有空格)...

代码建议基于您的代码

希望这会有所帮助...:)

【讨论】:

这可行,但会留下图像的完整路径。如果我这样做:'file_name' => str_replace("../path/to/image/"," ", "", $file_name), 我数据库中的文件名字段中的所有内容都变为空白..? 不,你应该在那一行之后尝试这个解决方案...... 嗯...没有仍然保留文件的路径。当我检查文件夹中的图像时,图像在名字和姓氏之间仍然有空格。 'file_name' => str_replace("../path/to/image/", "", $file_name), 'file_name' => str_replace(" ", "", $file_name), 你是这样用的吗? $filename = str_replace(" ", "", $file_name); 不,如果您在我的原始帖子中看到我更新了它并添加了我的问题解决方案。尽管您的方式删除了进入数据库的文件名中的空格,但它留下了进入图像文件夹的文件名中的空格。还留下了数据库中图像的路径。 +1 虽然提供帮助。

以上是关于从文件名字符串PHP中删除空格[重复]的主要内容,如果未能解决你的问题,请参考以下文章

通过 Bash 从文本文件中删除空行,包括空格字符 [重复]

即使未检测到,如何在php中删除空格[重复]

删除PHP中两个单词之间的空格[重复]

PHP删除TXT文本内容

从字符数组java中“删除”重复空格

从找到空格和标点符号的数组中删除字符[重复]