我通过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}}的全名?
答案 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
希望这会有所帮助...