我有php代码,它从两个数据库表生成一个xml文件,并将xml文件保存到网站文件夹结构中的目录中。 xml文件正在正确保存。保存文件后,需要通过ftp将其发送到外部ftp服务器文件夹。
function send_ftp($source_file, $destination_file)
{
// set up basic connection
$ftp_server = 'svr02.xxxxxxx.com';
$connection_id = ftp_connect('svr02.xxxxxxx.com');
// login with username and password
$ftp_user_name = 'xxxxx';
$ftp_user_pass = 'xxxxx';
$login_result = ftp_login($connection_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($connection_id, true);
// upload the file
$upload = ftp_put($connection_id, $destination_file, $source_file,
FTP_ASCII);
// close the FTP stream
ftp_close($conn_id);
}
连接似乎很好,我也可以在FileZilla中使用相同的连接和凭据来手动上传xml文件。
如何找出问题所在,我是否正确使用了ftp_put方法?
感谢您的帮助..
更新5/22/2017 我添加了一个函数来返回var_dump作为我可以在字符串或电子邮件等中使用的内容。
function var_dump_ret($mixed = null) {
ob_start();
var_dump($mixed);
$content = ob_get_contents();
ob_end_clean();
return $content;
}
使用该代码,然后我可以获得var dump输出
$login_result = @ftp_login($connection_id, $ftp_user_name, $ftp_user_pass);
$dump_content = var_dump_ret(var_dump($login_result));
send_to_dev('ftp login result', $dump_content);
登录结果的var_dump是' null'即使它应该是真的还是假的。我不认为我现在正在登录。
更新5/23/2017 每个建议我改为使用var_export函数来获取我的变量。 ftp_connect失败了;返回false,所以代码甚至没有打开ftp流。我知道ftp服务器不具备' ftp://'在它面前,我想不出别的什么。此ftp代码在GoDaddy上的共享主机上运行。你认为GoDaddy阻止它有问题吗?
答案 0 :(得分:1)
为安全起见,Godaddy共享服务器托管阻止出站连接。这就是ftp_connect无法打开连接的原因。