2014-03-19 5 views
0

내 wamp 서버 (localhost)에 하나, ovh.com 전용 공간에 하나씩 두 개의 파일을 만들었습니다. ...내 서버에서 file_get_contents가 작동하지 않습니다.

어떻게 할 수 happends를

내 서버에
echo $search = file_get_contents('https://prod.api.pvp.net/api/lol/euw/v1.3/game/by-summoner/19319907/recent?api_key=6fa73a35-6477-412d-97a6-b6739cb6cf1b'); 

등 â, þ 또는 ¬처럼, 일부 잘못된 문자가, 나는이 문제를 해결하는 방법 : 두 파일은이 내용을 포함 ?

편집 : 파일에 관한 것이 아닙니다! 그것은 서버에 관한 것이고, 원인 파일은 정확히 동일합니다! http://www.dietadom.fr/test.php, 여기에 나쁜 : 모두 그 스크립트에 요청에서 http://82.124.50.144/test.php

헤더 :

작업 :

curl -I http://www.dietadom.fr/test.php 
HTTP/1.1 200 OK 
Set-Cookie: clusterBAK=R1564861669; path=/; expires=Wed, 19-Mar-2014 16:38:43 GMT 
Date: Wed, 19 Mar 2014 15:19:31 GMT 
Content-Type: text/html 
Connection: keep-alive 
Set-Cookie: cluster=R1649376954; path=/; expires=Wed, 19-Mar-2014 16:32:22 GMT 
Server: Apache 
X-Powered-By: PHP/5.4.24 
Pragma: no-cache 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Vary: Accept-Encoding 

가 작동하지 않음 :

curl -I http://82.124.50.144/test.php 
HTTP/1.1 200 OK 
Date: Wed, 19 Mar 2014 15:19:48 GMT 
Server: Apache/2.4.4 (Win64) OpenSSL/1.0.1d PHP/5.4.12 
X-Powered-By: PHP/5.4.12 
Content-Type: text/plain; charset: UTF-8 
현재 좋은 일을 확인하실 수 있습니다
+2

인코딩을 수정하십시오. –

+0

파일은 정확히 동일합니다 ... UTF-8 (BOM 제외) – user3438083

+0

서버에서 보낸 인코딩 헤더가 잘못되었지만 파일 인코딩이 아닙니다. – DanFromGermany

답변

2

두 서버가 제공하는 기본 문자 인코딩 헤더가 다를 수 있습니다. 둘 다 기본값을 갖도록 서버 구성을 변경하여이 문제를 해결할 수 있습니다. 또는 스크립트를 수정하여이를 초과 할 수 있습니다. 콘텐츠 인코딩 헤더를 추가하면 일관성을 유지하게됩니다. 당신이 UTF-8 일반 시험 내용에 대한 PHP 파일을 수정하는 경우

라인은 소스 URL과 함께 응답

header('Content-type: text/plain; charset=UTF-8'); 

것 : 사용하여 검색

Content-Type: application/json; charset=UTF-8 

curl -I https://prod.api.pvp.net/api/lol/euw/v1.3/game/by-summoner/19319907/recent?api_key=6fa73a35-6477-412d-97a6-b6739cb6cf1b 

따라서 UTF-8로 인코딩 된 것을 어떻게 알 수 있습니까? ,

curl -I http://82.124.50.144/404.html 
HTTP/1.1 403 Forbidden 
Date: Wed, 19 Mar 2014 17:24:17 GMT 
Server: Apache/2.4.4 (Win64) OpenSSL/1.0.1d PHP/5.4.12 
Content-Type: text/html; charset=iso-8859-1 

나에게 기본 charecter 인코딩을 보여주는 마지막 줄은 ISO-8859-1 : 편집

내가의 오류 페이지의 헤더를 볼 수있는 서버에 대해 점검 데 이는 소스의 utf-8 데이터가 잘못된 인코딩으로 전송되고 있음을 의미합니다. 스크립트에 올바른 헤더 행을 추가하면 문제가 해결됩니다.

AddDefaultCharset UTF-8을 추가하여 아파치 서버 구성을 변경할 수 있습니다.

문제가 문자 인코딩과 관련되어 있으므로 반드시 살펴 봐야합니다.

+0

그것은 파일에 관한 것이 아니라 서버에 관한 것입니다. 파일은 정확히 동일합니다! 동일한 파일이 동일한 결과를 제공해야하지만 여기서는 서버가 원인이 아닙니다! – user3438083

+0

맞습니다. 서버가 다르게 구성되었지만 서버에 대해 알지 못해서 PHP에서 솔루션을 제공했습니다.서버의 콘텐츠 인코딩이 동일하게 설정되었는지 확인할 수도 있습니다. – DorianFM

+0

당신의 솔루션을 시도했지만 작동하지 않습니다 : ( – user3438083

관련 문제