2012-08-30 15 views
0
)

PHP에서 PHP를 사용하여 URL을 열려고합니다.PHP 인코딩 프로그램 (TM

$raw = file_get_contents($inlink); 

그런 다음 결과를 조사하고 있습니다. $ inlin은 $ _GET 변수에서옵니다. 대부분의 URL에서 작동하지만 404 오류가 발생하면 URL에 TM (TM) 기호가 포함되어있을 때 문제가 있습니다.

는 그래서 인코딩 문제처럼 보인다 문제의 URL이 - 바디 스크럽 - 300ml_27894/

http://www.boots.com/en/Soap-Glory-Flake-Away-된다. 그래서 urlencode 시도했지만 도움이되지 않습니다. 파이어 폭스의 주소 표시 줄에서 복사 및 과거를 시도 했으므로 대신 입력하십시오.

http://www.boots.com/en/Soap-Glory-Flake-Away-%E2%84%A2-Body-Scrub-300ml_27894/ 

대신 도움이되지 않습니다.

디버깅을 통해 화면에 반향이 나는 작품 어느 것도, 제출 된 하나

http://www.boots.com/en/Soap-Glory-Flake-Away-â„¢-Body-Scrub-300ml_27894/ 

또는

http%3A%2F%2Fwww.boots.com%2Fen%2FSoap-Glory-Flake-Away-%E2%84%A2-Body-Scrub-300ml_27894%2F 

와 끝까지.

이상한 것은 프로그램의 링크를 하드 코딩하면 작동한다는 것입니다.

아이디어가 있으십니까? 당신은 URL을 utf8_encode 필요

+0

질문에 대한 답변은 아니지만 간단한 답변입니다. 권한이있는 사용자 만이 기능을 사용할 수 있습니다. 손님이이 작업을 수행하도록 허용하면 아마 귀하의 서버를 사용하여 모든 URL을 요청할 수 있습니다. 따라서 첫 번째 행에서이 서비스를 사용한 모든 학대에 대해 귀하는 책임을집니다. 또한 그들은 당신에게 많은 트래픽을 유발할 수 있습니다. 당신은 정말로 이것을 원하지 않습니다. –

+0

시스템은 등록 된 사용자만을 대상으로하며이 방법으로 열 수있는 URL은 거의 없습니다. 그러나 포인터에 감사드립니다. –

답변

1

당신이 file_get_contents()을 실행하기 전에

또한

, 당신이 utf8_decoding와 URL의 유효성을 검사하는 가정 (I (5)/라틴어는 ISO-8859에 의해 제공됩니다 가정) - 당신은 사용자가 시스템을의 임의의 URL을 인터넷의 어느 곳에서나 요청하도록하지는 않을 것입니다.

+0

네, 고마워요! –