正如您在标题上所看到的,我正在尝试使用空白空间来fopen()一个Url。其他堆叠溢出的帖子并没有真正的帮助,可能是它们已经过时了吗?
我试过:
上述任何一种方法都不起作用,http://test.com/two - words.jpg --这给了我:
http%3A%2F%2Ftest.com%2Ftwo+-+words.jpghttp%3A%2F%2Ftest.com%2Ftwo%20-%20words.jpg当我试图清楚地获得http://test.com/two%20-%20words.jpg时,当您键入http://test.com/two - words.jpg并点击enter时,浏览器就会显示这一点。
我需要使用哪些函数来将这些转换从space转换到%20,并将all作为我可能需要的其他可能的转换(我想不出更多的转换了,但我很确定它们存在,也许是在特殊的符号上)?
发布于 2014-09-28 02:37:52
使用预浸
$newUrl = preg_replace('/ /', '%20', 'http://test.com/two - words.jpg');
echo $newUrl;输出
http://test.com/two%20-%20words.jpg或者是应激
$newUrl = str_replace(' ', '%20', 'http://test.com/two - words.jpg');但更一般的情况下,您将需要编码的不仅仅是空间。我创建了这个函数,如果您不想使用urlencode或rawurlencode,这就是您要寻找的:
function encodeURI($URI)
{
return str_replace(array('%', '^', '+', '{', '[', '}', ']', '"', '|', '\\', '<', '>', ' '),
array('%25', '%5E', '%2B', '%7B', '%5B', '%7D', '%5D', '%22', '%7C', '%5C', '%3C', '%3E', '%20'), $URI);
}示例
echo encodeURI('http://test.com/two - ["word<><s.jpg');输出
http://test.com/two%20-%20%5B%22word%3C%3E%3Cs.jpghttps://stackoverflow.com/questions/26081074
复制相似问题