PHP执行Python SFTP脚本

时间:2015-11-16 15:16:33

标签: php python

PHP中的

我需要做一些SFTP,但是我遇到了问题,因为我不允许安装SSH扩展,并且phpseclib无法正常工作。

因此,我将执行一个Python脚本来为我做SFTP。我的成像是做以下的事情

exec("SFTPUpload.py remoteFile serverLocation");

所以我执行SFTPUpload.py传递它需要传输的服务器上文件的位置,以及它需要传输的服务器上的位置。

就Python脚本而言(我对Python不太熟悉),我想它会像下面那样

username='sftpUser'
password='sftpPassword'
port=22


#SFTP
client.load_system_host_keys()
print " hostname =%s \n username=%s \n password=%s \n" (hostname,username,password)
t = paramiko.Transport((hostname, port)) 
t.connect(username=username,password=password)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(source,destination)
sftp.close()
t.close()

但是,我从PHP调用它的方式,我需要Python在类或其他东西,所以我可以传递变量。

我将如何实现这样的目标?

由于

1 个答案:

答案 0 :(得分:1)

我相信你可以通过简单解析Python中的命令行参数来使用exec()函数来完成它。

像:

import sys

print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)

您可以像列表一样访问sys.argv中的元素。

(您还可以查看提供更多(类C)参数传递选项的getopt module,但我相信上述解决方案可以做到。)

如果exec()函数不起作用,我相信您可以考虑在PHP中使用system function

这样的事情:

$mystring = system('SFTPUpload.py remoteFile serverLocation', $retval);