带有空白的图像文件名


Image filenames with white space

我通过php扫描图像文件夹得到一个图像URL数组。某些图像文件名有空白。空白之后的部分丢失。例如:这个文件很好:

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

此文件将丢失部件sky.png

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

我扫描文件夹的代码与检查或操作文件名无关。如何获得blue sky.png的全名而不将其重命名为blue-sky.png

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,它可能包含有用的信息

注意:urlencode将转换不是字符串标准的每个字符(因此您可能只想在图像名称的字符串上使用urlencode)

我遇到了这个问题,但在尝试了上面的答案后,我意识到真正的问题是我在编写html链接时没有使用引号-通常浏览器可以容忍这种情况,但如果存在空格,则不能。即,我编码了类似
的内容a href=/文件夹/蓝天.png
而不是
a href="../folder/blue sky.png"
地址中有正确的语法空间不会引起问题

您可以使用regex。

尝试;

$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

希望这能帮助。。。