带有空白区域的图像文件名

时间:2012-07-31 14:35:26

标签: php

我通过php扫描图像文件夹获取了一个图像URL数组。某些图像文件名具有空格。白色空间丢失后的部分。例如: 这个文件很好:

http://domain.com/folder/blue-sky.png

此文件将丢失部分sky.png

http://domain.com/folder/blue sky.png

我扫描文件夹的代码与检查或操作文件名无关。如何在不将blue sky.png重命名为blue-sky.png的情况下获取{{1}}的全名?

3 个答案:

答案 0 :(得分:15)

url编码中的空格用字符串“%20”表示 所以你可能想用str_replace将“”字符的每个实例替换为字符“%20”

echo str_replace(' ', '%20', 'http://domain.com/folder/blue sky.png');

将输出

http://domain.com/folder/blue%20sky.png

补充信息

另外,我自己从未使用它,但如果我是你,我会看一下php函数urlencode,它可能包含有用的信息

注意:Url编码会转换不符合字符串标准的每个字符(因此您可能只想在作为图像名称的字符串上使用urlencode)

答案 1 :(得分:1)

我遇到了这个问题,但在尝试了上面的答案后,我意识到真正的问题是我编写了没有引号的html链接 - 通常浏览器可以容忍这一点,但是如果存在空格则不行。 即我编码了类似的东西 a href = .. / folder / blue sky.png
而不是 a href =“../ folder / blue sky.png”
使用地址中正确的语法空格不会导致问题

答案 2 :(得分:0)

您可以使用正则表达式。

试;

$file_name = "http://domain.com/folder/blue sky.png";
$file_name2 = preg_replace("/ /", "-", $file_name);
echo $file_name2; //echos http://domain.com/folder/blue-sky.png

希望这会有所帮助...