我通过 php 扫描图像文件夹得到一组图像 URL。一些图像文件名有空格。空白之后的部分丢失了。例如:这个文件很好:
http://domain.com/folder/blue-sky.png
此文件将丢失部分 sky.png
http://domain.com/folder/blue sky.png
我用于扫描文件夹的代码与检查或操作文件名无关。如何在 blue sky.png
不将其重命名为的情况下获得全名blue-sky.png
?
我通过 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,它可能包含有用的信息
注意:Url 编码将转换不是字符串标准的每个字符(因此您可能只想在作为图像名称的字符串上使用 urlencode)
我遇到了这个问题,但是在尝试了上面的答案之后,我意识到真正的问题是我编写的 html 链接没有使用引号 - 通常浏览器可以容忍这个问题,但如果存在空格则不能。即,我编写了类似于
href=../folder/blue sky.png
而不是
href="../folder/blue sky.png"
的代码地址中使用正确的语法空格不会导致问题
您可以使用正则表达式。
尝试;
$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
希望这可以帮助...