2014-09-30 4 views
2

Команда не работает, если выполняется с php с переменными. Но если я запустил его с терминала или с php (exec или shell_exec) без переменных, он будет работать. Это не работает:Php exec или shell_exec не работает при выполнении команды lftp

$command = 'lftp -c "open -u'.$user.','.$password.' -p xxx sftp://xx.xx.xx.xx; put -O /folder1 folder2/'.$fileName.';"'; 
exec($command); 

var_dump (shell_exec ($ команда)) -> печать: NULL

Это работает:

$command = 'lftp -c "open -u user,password -p 6710 sftp://xx.xx.xx.xx; put -O /folder1 folder2/file.txt;"'; 
exec($command); 

Благодаря

+0

Есть много подобных вопросов. Я бы рекомендовал искать. Например: https://stackoverflow.com/questions/8527817/updated-php-exec-system-or-passthru-all-remove-single-or-double-quotes, https://stackoverflow.com/questions/6780285/php-shell-exec-not-printing-dynamic-output-only-prints-static-echo-text? rq = 1, https://stackoverflow.com/questions/20107147/php-reading-shell-exec-live -output и т. д. –

ответ

-1

Finded на php.net

http://php.net/manual/fr/ftp.examples-basic.php

использование ftp_ssl_connect для подключения SSL FTP-сервер и CD/LS/ставить и т.д. unstead пытается EXEC/shell_exec Командной строки

// set up basic connection 
$ftp_server = "example.com"; 
$conn_id = ftp_ssl_connect($ftp_server); 

// login with username and password 
$ftp_user_name = "myuser"; 
$ftp_user_pass = "mypass"; 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
ftp_pasv($conn_id, true); 
// check connection 
if ((!$conn_id) || (!$login_result)) { 
     echo "FTP connection has failed!"; 
     echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
     exit; 
    } else { 
     echo "Connected to $ftp_server, for user $ftp_user_name"; 
    } 

$buff = ftp_rawlist($conn_id, '.'); 
var_dump($buff); 
ftp_close($conn_id); 

Благодаря Kane точки prajakta на Gmail точку ком, кто пишет этот пример.

+0

Этот ответ не затрагивает вопрос, заданный mstafkmx. –

Смежные вопросы