PHP로 SFTP하는 방법?
웹 FTP 클라이언트 용 PHP 확장을 많이 보았습니다. PHP에서 웹 애플리케이션으로 SFTP 클라이언트를 구현해야합니다. PHP는 SFTP를 지원합니까? 샘플을 못 수 없습니다. 누구든지 이것으로 나를 도울 수 있습니까?
PHP에는 ssh2 스트림 래퍼 (기본적으로 사용할 수 있음)가 있으므로 ssh2.sftp://
프로토콜 에 사용하여 스트림 래퍼를 지원하는 모든 함수에 sftp 연결을 사용할 수 있습니다.
file_get_contents('ssh2.sftp://user:pass@example.com:22/path/to/filename');
또는 -ssh2 확장을 사용하는 경우
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
http://php.net/manual/en/wrappers.ssh2.php 참조
참고 로이 주제에 대해 이미 많은 질문이 있습니다.
ssh2 함수는 그다지 좋지 않습니다. 사용하기 어렵고 아직 설치하기 어렵 기 때문에 코드를 사용하면 코드의 이식성이 0이됩니다. 내 권장 사항은 순수한 PHP SFTP 구현 인 phpseclib 를 사용 하는 것 입니다.
"phpseclib"가이 작업에 도움이 될 것임을 알았습니다 (SFTP 및 더 많은 기능). http://phpseclib.sourceforge.net/
파일을 서버에 포함하려면 ( http://phpseclib.sourceforge.net/sftp/examples.html#put의 코드 예제 )
<?php
include('Net/SFTP.php');
$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
// puts a three-byte file named filename.remote on the SFTP server
$sftp->put('filename.remote', 'xxx');
// puts an x-byte file named filename.remote on the SFTP server,
// where x is the size of filename.local
$sftp->put('filename.remote', 'filename.local', NET_SFTP_LOCAL_FILE);
나는 완전한 cop-out을 수행하고 배치 파일을 만든 다음 호출을 sftp
통해 호출하는 클래스를 작성했습니다 system
. 가장 좋은 (또는 가장 빠른) 방법은 필요한 작업을 수행하며 PHP에서 추가 라이브러리 또는 확장을 필요로하지 않습니다.
ssh2
확장 기능 을 사용하지면 갈 방법이 될 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4689540/how-to-sftp-with-php
'ProgramingTip' 카테고리의 다른 글
목록의 표현을 실제 목록으로 변환 (0) | 2020.10.12 |
---|---|
Razor보기에서 인코딩되지 않은 암호화 된 내보내기 (0) | 2020.10.12 |
한 줄로 LHS에 여러 새 변수 할당 (0) | 2020.10.12 |
iOS5 Storyboard UIViewController 어떤 init 메소드가 스토리 보드에서 호출? (0) | 2020.10.12 |
Perl에서 "eq"대 "=="문자열 비교 (0) | 2020.10.12 |