FTP_QUIT () 함수를 호출하기 전에 FTP 연결이 성공적으로 설정되지 않은 경우 기능을 호출하면 오류가 발생할 수 있습니다. FTP_QUIT ()는 FTP 서버에 성공적으로 연결하고 관련 작업을 수행 한 후에 만 정상적으로 실행할 수 있습니다.
오류 설명 :
ftp_quit ()가 호출되면 반환 결과는 false 일 수 있습니다.
연결을 끊지 않거나 예외가 발생합니다.
해결책:
ftp_quit ()을 호출하기 전에 ftp_connect () 및 ftp_login ()을 통해 FTP 서버에 성공적으로 연결하십시오. 연결 자원이 False 인지 확인하여 연결이 성공했는지 확인할 수 있습니다.
<span><span><span class="hljs-variable">$conn_id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_connect</span></span><span>(</span><span><span class="hljs-variable">$ftp_server</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn_id</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결할 수 없습니다FTP섬기는 사람"</span></span><span>);
}
</span><span><span class="hljs-variable">$login_result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_login</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>, </span><span><span class="hljs-variable">$ftp_user_name</span></span><span>, </span><span><span class="hljs-variable">$ftp_user_pass</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$login_result</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"FTP로그인이 실패했습니다"</span></span><span>);
}
</span><span><span class="hljs-comment">// 구현하다FTP작동하다</span></span><span>
</span><span><span class="hljs-comment">// 마지막 전화ftp_quit()</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ftp_quit</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>);
</span></span>로그인이 성공한 후에 ftp_quit ()를 호출해야합니다. FTP_QUIT ()을 호출하기 전에 FTP_LOGIN ()을 통해 사용자 인증을 완료하지 않으면 PHP가 FTP 연결을 올바르게 분리하지 못할 수 있습니다.
오류 설명 :
FTP 연결은 올바르게 닫을 수 없거나 ftp_quit ()를 호출 한 후 응답이 없습니다.
해결책:
ftp_connect () , ftp_login ()을 성공적으로 호출 한 후 로그인을 성공적 으로 요구하는지 확인하십시오. 로그인이 성공했음을 나타냅니다.
<span><span><span class="hljs-variable">$conn_id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_connect</span></span><span>(</span><span><span class="hljs-variable">$ftp_server</span></span><span>);
</span><span><span class="hljs-variable">$login_result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_login</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>, </span><span><span class="hljs-variable">$ftp_user_name</span></span><span>, </span><span><span class="hljs-variable">$ftp_user_pass</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$login_result</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"FTP로그인이 실패했습니다"</span></span><span>);
}
</span><span><span class="hljs-comment">// 구현하다FTP작동하다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ftp_quit</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>); </span><span><span class="hljs-comment">// 로그인이 성공한 후에 만 전화 할 수 있습니다</span></span><span>
</span></span>때로는 FTP_QUIT ()를 호출하기 전에 프로그램이 FTP 연결을 수동으로 또는 자동으로 닫았을 수도 있습니다. 연결이 닫히면 ftp_quit ()을 다시 호출하면 오류가 발생합니다.
오류 설명 :
ftp_quit () 는 false를 반환합니다.
프로그램에서 예측할 수없는 오류가 발생하여 연결이 사전에 닫히도록합니다.
해결책:
ftp_get_option () 또는 is_resource () 함수를 통해 FTP 리소스가 여전히 유효한지 확인할 수 있습니다. 연결이 닫힌 경우 FTP_QUIT ()를 다시 호출하지 않아야합니다.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_resource</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">ftp_quit</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"연결이 닫힙니다,无法구현하다ftp_quit()"</span></span><span>;
}
</span></span>FTP_QUIT () 자체가 연결을 닫고 리소스를 해방 시키지만 경우에 따라 개발자는 다른 곳의 리소스 릴리스를 놓치면 메모리 누출이 발생하거나 연결이 완전히 닫히지 않을 수 있습니다.
오류 설명 :
리소스가 완전히 릴리스되지 않아 메모리 누출이 발생합니다.
연결 시간 초과와 같은 문제가 있습니다.
해결책:
FTP_QUIT ()를 호출하는 것 외에도 개발자는 작업이 완료된 후 FTP 연결이 수동으로 닫히고 해당 리소스가 해제되도록해야합니다. Unset ()를 사용하여 FTP 리소스를 명시 적으로 해제 할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">ftp_quit</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>);
</span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>); </span><span><span class="hljs-comment">// 명시 적 릴리스FTP의지</span></span><span>
</span></span>FTP_QUIT ()를 실행할 때 네트워크 중단 또는 서버가 도달 할 수없는 경우 FTP_QUIT ()가 실행되면 실패 할 수 있습니다. 이 상황은 일반적으로 PHP 코드 자체의 문제가 아니라 외부 네트워크 환경에 문제가 있습니다.
오류 설명 :
ftp_quit ()는 성공적으로 연결을 끊을 수 없습니다.
서버는 네트워크 문제 또는 서버 타임 아웃으로 인한 오류 코드를 반환합니다.
해결책:
네트워크 연결이 정상인지 확인 하거나이 상황을 캡처하기 위해 오류 처리 로직을 추가하십시오. 예를 들어, FTP_PASV ()를 사용하여 패시브 모드로 전환하거나 타임 아웃 설정을 추가하여 네트워크 변동으로 인해 연결이 중단되지 않도록 할 수 있습니다.
<span><span><span class="hljs-comment">// 수동 모드를 켭니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ftp_pasv</span></span><span>(</span><span><span class="hljs-variable">$conn_id</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-comment">// 설정FTP연결 시간 초과</span></span><span>
</span><span><span class="hljs-variable">$timeout</span></span><span> = </span><span><span class="hljs-number">90</span></span><span>; </span><span><span class="hljs-comment">// 초과하다90몇 초 만에 연결을 포기하십시오</span></span><span>
</span><span><span class="hljs-variable">$conn_id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_connect</span></span><span>(</span><span><span class="hljs-variable">$ftp_server</span></span><span>, </span><span><span class="hljs-number">21</span></span><span>, </span><span><span class="hljs-variable">$timeout</span></span><span>);
</span></span>FTP 서버 자체 (예 : 구성 오류 또는 서비스 인터럽트)에 문제가있는 경우 FTP_QUIT ()가 제대로 작동하지 않을 수 있습니다. 이것은 일반적으로 클라이언트 코드 오류가 아닌 서버 측에서 발생합니다.
오류 설명 :
ftp_quit () 호출은 응답하지 않거나 오류를 반환합니다.
FTP 연결을 올바르게 닫을 수 없습니다.
해결책:
FTP 서버의 구성 및 작동 상태를 확인하십시오. 서비스 중단 또는 구성 오류를 확인하려면 서버 관리자에게 문의해야 할 수도 있습니다.