Я хочу открыть и написать txt файл с другого сервера, но я не знаю, как это сделать? Может кто-нибудь мне помочь?
<?PHP
$fname=$_POST["fname"];
$groupid=$_POST["groupid"];
$myfile = fopen("Ji.txt", "a+") or die("Unable to open file!");
fwrite($myfile, $fname."|".$groupid."\r\n");
fclose($myfile)
?>
Я хочу заменить Ji.txt с помощью http://xxx.xxx.xx.x/ddd.txt
В качестве альтернативы вы можете сделать это с помощью функций FTP
<?php
// Connect to remote FTP server
$conn = ftp_connect("ftp.example.com")or die("Cant connect to ftp server");
$login = ftp_login($conn, "username", "password");
// Open local (temporary) file handle
$fh = fopen("Ji.txt", "a+");
// Get remote file and save it to the previous file handle
if(ftp_fget($conn, $fh, "Ji.txt", FTP_ASCII))
{
// Local file has now been updated with the content of the remote Ji.txt
$fname = $_POST['fname'];
$groupid = $_POST['groupid'];
fwrite($fh, $fname.'|'.$groupid.'\r\n');
if(ftp_fput($conn, "Ji.txt", $fh, FTP_ASCII))
echo 'File saved to remote server';
else
echo 'Error saving to remote server';
}
else
echo 'Error downloading remote file';
ftp_close($conn);
fclose($fh);
?>
Узнайте больше о ftp_fput и т.д. Здесь: http://php.net/manual/en/function.ftp-fput.php
Вы можете читать файлы через HTTP, используя fopen
или cURL
.
Вы не можете записывать файлы через HTTP, если только сервер, на который вы пишете, не настроен на соответствующий запрос. Вы можете настроить его для поддержки запросов PUT
(убедитесь, что у вас есть какая-то система authn/authz!) И сделайте один с помощью cURL
.
Кроме того, вы можете использовать другой протокол, чтобы сделать файл доступным между серверами (например, NFS).
Предполагая, что у вас есть доступ к другому серверу, и текстовый файл доступен на веб-адресе (т.е. Вы можете увидеть его в браузере), вы можете использовать fopen, чтобы захватить его, внести свои изменения или что-то еще, а затем вернуться к сценарию, который будет обрабатывать данные сообщения и сохранять файл с помощью curl. Пример кода ниже скопирован из этого ответа
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => '@/path/to/file.txt'));
curl_setopt($ch, CURLOPT_URL, 'http://server2/upload.php');
curl_exec($ch);
curl_close($ch);
Пока для параметра allow_url_fopen
установлено значение True, вы можете передать URL-адрес fopen()
и прочитать данные. Однако писать невозможно. Однако вы можете написать обертку вокруг файла, который принимает запросы GET & POSTS. GET возвращает содержимое файла, а POST (или PUT) сохраняет содержимое файлов. Недостатком этого является то, что вы должны добавить безопасность, и это намного сложнее для сохранения данных.