2014-11-04 2 views
1

EDIT : 이유는 우리를 차단 한 서비스 (보안)를 재검토 한 것이 었습니다. 제발 질문을 무시하십시오php file_get_contents는 dev 및 production에서 다르게 동작합니다.

다른 비슷한 질문을 체크했는데,이 경우는 다른 것 같습니다. 이미지의 실제 크기를 - 그것은 8861을 출력 내 dev에 PC에서

$src='http://www.fattal.co.il/Octopus/Upload/Images/Pages/thumbs/magic-sunrise-club-eilat-youth-club_thumb.jpg'; 

$opts = array(
    'http'=>array(
    'method'=>"GET", 
    'user_agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0' 
) 
); 

$context = stream_context_create($opts); 

$data= file_get_contents($src, false, $context, -1, 1500000); 
echo strlen ($data); 

:

나는이 간단한 코드가 있습니다. 리눅스 우분투 프로덕션 서버에서는 사이트에서 자바 스크립트를로드하는 HTML 코드를 가져옵니다 (인쇄 된 크기는 549 바이트입니다).

두 상자 모두 다른 사이트에서 이미지를 멋지게 가져옵니다. 포장지가 제자리에있는 것 같습니다. 이 문제는 예제의 사이트에만 적용됩니다. 많은 헤더 변형이있는 서버를 에뮬레이트했습니다. 브라우저가 보낼 수있는 모든 헤더가 포함되었습니다. 이 doesnt는 효과를 낸다.

다른 프로덕션 서버에서 이미지 서버가 IP로이를 차단했음을 제외하고 시도했습니다.

두 개의 상자에는 allow_url_fopen이 설정되어 있습니다.

프로덕션 서버에서 작동하지 않는 이유를 확인하려면 어떻게해야합니까?

+1

$ http_response_header - http://php.net/manual/en/reserved.variables.httpresponseheader.php 및 get_headers() - http://php.net/get_headers 및 stream_notification_callback()에 대해 자세히 알아보십시오. - 귀하의 컨텍스트에 대한 http://php.net/stream_notification_callback – OIS

+0

좋은 아이디어. 두 가지 모두 머리글로 '좋은 선별기'가 이미지를 받고 '나쁜'이 HTML을 가져 오는 것을 나타냅니다. 좋은 서버에 고유 헤더 : '동의-범위 : 바이트' '액세스 제어 - 허용 - 원산지 : *' '캐시 제어 : 최대 사용 기간 = 604800' '콘텐츠 유형 : 이미지/JPEG ' '의 ETag : "8afd6619a884cf1 : 0" ' '마지막 수정 : 2014년 6월 10일 (화) 나쁜 '전화'는에 헤더 고유의 '그리니치 표준시 12시 32분 53초 : "캐시 - 제어 : 노 캐시, 개인용, 변형 없음, 상점 없음 " "콘텐츠 유형 : text/html; charset = utf-8 " "만료 : 1970 년 1 월 1 일 00:00:01 GMT " "PageSpeed ​​: off " – Nir

답변

1

그냥 파일을 FireFox로로드하고 Modify Headers 확장을 사용하여 Host 매개 변수를 필터링했습니다. 너와 비슷한 크기의 오류를 반환했다. www.fattal.co.il에 설정된 호스트 헤더를 추가하십시오. 그게 작동하는지 확인

+0

감사합니다. ! 나는 그것을 시험해 보았다. 그리고 불행하게도 그것은 didnt한다 일 – Nir

0

분명히 이유는 사이트가 사용하는 보안 플랫폼을 reblaze입니다. 우리는 단지 흰색을 나열해야합니다.

감사합니다.

관련 문제