2012-07-31 96 views
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?在URL编码

+3

请发布您正在使用的代码。 – j08691 2012-07-31 14:37:07

+2

您可以在代码中添加一个['urlencode'](http://php.net/manual/en/function.urlencode.php)行来扫描文件夹以解决该问题。 – Palladium 2012-07-31 14:39:52

+0

使用'glob'我不能重现你说的话。请发布您的代码 – Alfwed 2012-07-31 14:40:54

回答

15

空间被表示为字符串“%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作为你的图像名称)

+0

str_replace('','%20',$ file)解决了这个问题。谢谢! – Jenny 2012-07-31 22:43:56

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 

希望这有助于...

0

我遇到了这个问题,但是上面意识到我真正的问题是,我写我的HTML链接无引号的答案后试验 - 该浏览器是容忍这一点,但如果空间存在则不会。 即我编码类似
A HREF = .. /文件夹/蓝sky.png的
代替
A HREF = “../文件夹/蓝sky.png”
用在正确的语法空间地址不会造成问题