2014-09-17 8 views
0

저는 Flex로 Flash 응용 프로그램을 개발 중이며 amfPHP (V2.2.1)를 사용하여 PHP 백엔드와 통신합니다. 내 웹 호스팅 제공자가 Confixx에서 Plesk로 변경하고 웹 서버의 일부 설정을 변경 한 이후로 모든 것이 잘되었으므로 변경 후에 amfPHP 서비스 호출에서 항상 "Net.Connection.Call.Failed HTTP : 200"오류가 발생합니다. 일부 연구 끝에 응답 헤더가 "Content-Encoding gzip"과 함께 보내졌으며 "RequestHeader unset Accept-Encoding"을 사용하여 .htaccess 파일에서이 기능을 해제했음을 알게되었습니다. 그 후 모든 서비스가 다시 정상적으로 작동했으며 이전과 같이 작동합니다.Apache에서 AMFPHP 및 콘텐츠 인코딩 gzip

내 질문은 이 문제를 해결할 다른 방법이 있습니까? amfPHP에 대한 설정이 있습니까? gzip 압축 또는 다른 최상의 방법으로 사용할 수 있습니까?

미리 감사드립니다.

추가 : 나는 AMFPHP 플러그인 AmfphpGzip을 발견,하지만 난 그것을 사용하는 경우 플래시 오류가 발생
"오류 : 오류 # 2030 :. 파일의 끝이 발생했습니다." 왜 이렇게되는지 모르겠습니다. 내가 얻을 데이터가 Joomla에서 파싱 된 language.ini 파일 인 것일까?

추가 2 :
(제작 아래 답변으로이 부분)

답변

0

단지 텍스트를 포함하는 INI 파일이 서버에 처리하기 위해 너무 많은 것을 같지는 않다. 무슨 일이 일어나고 있는지 알아 내기 위해서는 좀 더 깊게 파고 들어야합니다. http://www.silexlabs.org/amfphp/documentation/troubleshooting-and-debugging-your-project/ 특히 "PHP 오류에 대한 정보 얻기"를 참조하십시오. 그러나 문제가 될만한 가치가 있는지 스스로에게 물어볼 수도 있습니다. ini 파일을 gzipping 할 때 큰 가치는 없습니다. 대역폭 이득은 아마도 꽤 적당 할 것입니다.

+0

이전의 모든 주석을 삭제했습니다. 완전히 다른 문제 였고 지금 해결책이 있습니다. 위 질문에 추가하겠습니다. 하지만 그래, 그만한 가치는 아니지만, 내가 처리해야 Joomla 구성 요소를 사용자가 .htaccess 파일을 편집 할 필요없이 상자 밖으로 작동해야합니다 원인은 정말 해결책이 아니에요 서버에서 전송 인코딩을 완전히 비활성화합니다. 어쨌든 - 귀하의 회신과 귀하의 도움에 감사드립니다! – Bio

0

지금 해결책을 찾은 것 같습니다.

protected function strlen($text){ 

    $length = 0; 

    if (function_exists('mb_strlen')) { 
     $length = mb_strlen($text); 
    } 
    else { 
     // Do not count UTF-8 continuation bytes. 
     $length = strlen(preg_replace("/[\x80-\xBF]/", '', $text)); 
    } 

    return $length; 
} 

플래시가 오류 : AmfphpGzip 플러그인에서 는 주어진 문자열의 길이를 반환하는 함수가 "오류 # 2030 : 오류. 파일의 끝이 발생했습니다" 응답 헤더의 Content-Length가 올바르지 않습니다 (amf 응답의 ini 파일에있는 데이터는 오류가 발생할 때 항상 잘립니다). 그래서 저는이 기능을 다음과 같이 변경했습니다 :

protected function strlen($text) 
{ 
    return strlen($text); 
} 

이제 내 웹 사이트 호스팅과 로컬 서버에서 잘 작동합니다. Joomla language.ini 파일은 모두 BOM없이 UTF-8로 저장되며 ü, ß 또는 ö와 같은 모든 독일어 특수 문자는 응답에서 정확합니다. 또한 다른 모든 서비스 호출이 잘 작동하므로 strlen은이 함수가 적절한 문자열 길이를 얻기에 충분하다고 생각합니다.