4

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

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

此文件将丢失部分 sky.png

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

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

4

3 回答 3

18

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)

于 2012-07-31T14:37:31.520 回答
1

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

于 2013-10-28T15:29:36.287 回答
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

希望这可以帮助...

于 2012-07-31T14:40:14.800 回答