我需要使用php写入位于不同服务器上的文件。
因此,我从一个服务器上的表单获取用户数据,然后需要写入位于另一个服务器上的文本文件。我需要进行身份验证还是类似的事情?
我需要写的第二台服务器是Windows服务器。这是一个问题吗?
谢谢!
答案 0 :(得分:3)
您需要在远程(Windows)计算机上提供一些接受该文件并存储它的服务。有很多方法可以做到这一点:
我使用HTTP方法并且它工作得很好(因为我已经在远程计算机上运行了Apache),但是任何其他选项都是可行的。
答案 1 :(得分:2)
我不知道你是否有这种可能性,但......
而不是尝试更新另一台服务器上的文件,特别是像txt文件那样的简单文件,我会将当前文件放在服务器1上,然后我会使用cron作业设置为cURL将它从服务器2复制到服务器2每隔x分钟复制一次文件。
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
set_time_limit(3600); # 5 minutes for PHP
curl_setopt($ch, CURLOPT_TIMEOUT, 3600); # and also for CURL
$outfile = fopen( $dirname, 'wb');
curl_setopt($ch, CURLOPT_FILE, $outfile);
// grab file from URL
$response = curl_exec($ch);
fclose($outfile);
// close CURL resource, and free up system resources
curl_close($ch);
`
我这样做只是因为您不必处理为更新设置FTP帐户或类似的事情。您需要该文件的服务器正在出去并为自己抓取文件。
我使用上面的脚本从各种博客收集mp3。有时它们将是100-200MB,并且在共享服务器上运行良好。
答案 2 :(得分:1)
无论您是要写入任何一台服务器都没有问题,您可以使用PHP FTP完成此操作。
确保您具有在服务器上写入文件的正确权限,否则您的代码将无法正常运行并获得访问被拒绝错误。
答案 3 :(得分:0)
使用php,您可以建立ftp连接并使用ftp
在.net服务器上写入文件身份验证可以通过ftp
完成获取有关如何执行此操作的信息 http://nl.php.net/ftp
你在第二台服务器上运行ftp吗?
您还可以使用数据
对seconde服务器执行ajax调用在seconde服务器上放置一个用内容写入文件的脚本,但是你必须使用像php / asp这样的脚本语言在seconde服务器上运行http
答案 4 :(得分:0)
如果要使用SFTP,可以使用cURL进行。 Stack Overflow post