2013-04-19 5 views
0

PHP 코드를 사용하여 SFTP (서버에서 파일 가져 오기)를 수행하고 로컬 컴퓨터에 저장해야합니다. 내가 이걸 봐 코드 ftp_ssl_connect()를 사용하고 것은PHP를 사용하여 서버에서 파일을 가져올 수 없습니다

$local_file = '/var/www/filename.csv'; 
$server_file = '/foldername/filename.csv'; 
$ftp_connection = ftp_ssl_connect('example.com','port'); 
$login_result = ftp_login($ftp_connection, 'username', 'password'); 
if (ftp_get($ftp_connection, $local_file, $server_file, FTP_BINARY)) { 
    echo "Successfully written to $local_file\n"; 
} else { 
    echo "There was a problem\n"; 
} 

ftp_close($ftp_connection); 

그러나 메신저

'Fatal error: Call to undefined function ftp_ssl_connect()' 

그래서 otherthan이 방법이 작업을 수행하는 다른 방법이

로 오류가 무엇입니까?

답변

0

phpinfo()를 확인하여 OpenSSL과 ftp 모듈이 모두 있는지 확인하십시오. ftp_ssl_connect에 PHP.net 페이지에서

()

참고 :이 기능은() ftp_ssl_connect을 존재하는 FTP 모듈과 OpenSSL을 모두 지원 정적 PHP에 내장되어있는 경우에만 사용할 수 없습니다 이유는, 즉, Windows에서이 함수는 공식 PHP 빌드에서 정의되지 않습니다. 이 기능을 Windows에서 사용할 수있게하려면 PHP 바이너리를 컴파일해야합니다.

오 및 다른 대안 방법으로 보안 컬 호출을 사용할 수 있습니다.

http://www.linuxformat.co.uk/wiki/index.php/PHP_-_The_Curl_library

http://php.net/manual/en/book.curl.php

+0

시도한 ssh2_connect(). 그러나 그것도 작동하지 않습니다.이 기능에 필요한 사양이 있습니까? –

0

FTPS 및 SFTP는 같은 것이 아니다. SFTP의 경우 phpseclib, a pure PHP SFTP implementation을 시도하십시오. 예.

<?php 
include('Net/SFTP.php'); 

$sftp = new Net_SFTP('www.domain.tld'); 
if (!$sftp->login('username', 'password')) { 
    exit('Login Failed'); 
} 

echo $sftp->get('filename.remote'); 
?> 
관련 문제