Мне нужно написать файл, который находится на другом сервере, используя php.
Таким образом, я получаю данные пользователя из формы на одном сервере, а затем должен писать текстовый файл, расположенный на другом сервере. Нужно ли мне аутентифицироваться или что-то подобное?
Второй сервер, который мне нужно написать, – это сервер Windows. Это проблема?
Благодаря!
Нет никакой проблемы, пишете ли вы на обоих серверах, вы можете это сделать с помощью PHP FTP .
Убедитесь, что у вас есть правильные разрешения на запись файлов на серверы, или ваш код не будет работать и получить отказ в доступе.
Вам нужно иметь некоторую службу на удаленном (Windows) компьютере, который будет принимать файл и хранить его. Есть много способов сделать это:
Я использую HTTP-подход, и он работает довольно хорошо (потому что я уже запускаю Apache на удаленных машинах), но любой другой вариант также жизнеспособен.
Я не знаю, возможно ли это для вас, но …
Вместо того, чтобы пытаться обновить файл на другом сервере, особенно что-то простое, как txt-файл, я бы имел текущий файл на сервере один, а затем я бы скопировал его на сервер два с сервера два с cURL, используя задание cron, чтобы скопировать файл каждые 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-200 МБ, и он отлично работает на общем сервере.
Если вы хотите использовать SFTP, вы можете сделать это, используя cURL. Stack Overflow post
с php вы можете сделать ftp-соединение и записать файл на .net-сервере с ftp
аутентификацию можно выполнить с помощью ftp
для информации, как вы можете это сделать http://nl.php.net/ftp
Вы используете ftp на втором сервере?
Вы также можете выполнить вызов ajax для второго сервера с данными
На втором сервере вы помещаете скрипт, который записывает файл с содержимым, но затем вы должны запускать http на втором сервере с языком скриптов, например php / asp