2014-09-28 2 views
0

제목에서 알 수 있듯이, 나는 fopen() 공백으로 URL을 보려고합니다. 다른 stackoverflow 게시물 정말 도움이되지 않았다, 아마도 그것은 구식 수 있습니까?
나는 시도했다 :PHP : fopen (UrlWithWhiteSpaces)

  • 를 urlencode : http%3A%2F%2Ftest.com%2Ftwo+-+words.jpg
  • rawurlen를이 나에게주는 http://test.com/two - words.jpg

    • 를 urlencode
    • rawurlencode 위의 작품

    없음, 코드 : http%3A%2F%2Ftest.com%2Ftwo%20-%20words.jpg

내가 명확하게 http://test.com/two - words.jpg를 입력하고 Enter 키를 누르 때 브라우저 보여줍니다 무엇 http://test.com/two%20-%20words.jpg를 얻기 위해 노력하고 있어요.

내가 space에서 %20에 그 변환을 위해 사용해야 할 기능

모든 다른 가능한 변환 내가 더 이상 생각할 수없는 (필요 수 있지만, 내가 확신 그들 특수 기호에 존재할 수도 있음)?

+1

http://stackoverflow.com/questions/4929584/encodeuri-in-php – dtbarne

+0

@dtbarne 감사합니다, 내가 필요한 걸 먹었어 – rez

답변

1

사용 preg_replace :

$newUrl = preg_replace('/ /', '%20', 'http://test.com/two - words.jpg'); 

echo $newUrl; 

OUTPUT

http://test.com/two%20-%20words.jpg 

그리고 양자 택일 str_replace :

$newUrl = str_replace(' ', '%20', 'http://test.com/two - words.jpg'); 

하지만 좀 더 일반적으로 공간 이상의 것을 인코딩해야합니다.

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'); 

OUTPUT

: 당신이 urlencode 또는 rawurlencode을 사용하지 않으려는 경우 나,이 기능을했다, 이것은 당신이 찾고있는 무슨이다
http://test.com/two%20-%20%5B%22word%3C%3E%3Cs.jpg 
+0

안녕하세요! 그게 내가 필요한 유일한 변환이야? 메신저 그것에 대해 회의하지만, 나는 더 나은 옵션이 없기 때문에 나는 그러나 이것을 사용합니다 – rez

+0

글쎄 그건 당신이 물었습니다. –

+0

'그리고 가능한 다른 모든 변환에는'str_replace' 대신에 – rez