Я пытаюсь сгенерировать строку в vb.net, которую затем хочу отправить на свой сервер, в файл .php, который должен добавить эту строку в файл .txt.В строке несколько строк.Строка достигает php-файла правильно.Однако во время записи в файл .txt php создает дополнительные пустые строки, которые мне не нужны.
Что мне нужно в моем файле .txt:
line1
line2
line3
ЧтоЯ получаю:
line1
line2
line3
Я пытался изменить параметры вызова fopen (добавив b в аргументах для принудительного запуска двоичного режима), но это не помогло.Я также попытался заменить vbNewLine на «\ n» и «\ r \ n» в коде vb.net для разделения строк в строке, но, к сожалению, это не распознается и записывается в файл .txt, например * 1009.*
line1 \r\n line2 \r\n line3
Вот мой код приложения vb.net:
function sendStringToServer()
Dim stringToSend as String
stringToSend = "line1" & vbNewline
stringToSend &= "line2" & vbNewline
stringToSend &= "line3"
Dim wc As New WebClient
wc.Headers("content-type") = "application/x-www-form-urlencoded"
Dim response As String = wc.UploadString("http://www.example.com/uploaddata.php", "data=" & data)
MessageBox.Show(response)
(Обратите внимание, что ответ правильный, без лишних пустых строк.) И есть код upploaddata.php:
<?php
if (isset($_POST["data"]))
{
echo($_POST["data"]);
$data=$_POST['data'];
$fp = fopen('data.txt', 'ab');
fwrite($fp, $data);
fclose($fp);
}
else
{
echo "ERROR: No data!";
}
?>
Что я делаю неправильно?
РЕДАКТИРОВАТЬ: после того, как меня попросили сделать пример Minimal, Complete и Verifiable, я вставляю код и результаты:
в приложении vb.net Sub, который отправляет строку в uploaddata.php:
function sendStringToServer()
Dim stringToSend as String
stringToSend = "line1" & vbNewline & "line2" & vbNewline & "line3"
Dim wc As New WebClient
wc.Headers("content-type") = "application/x-www-form-urlencoded"
Dim response As String = wc.UploadString("http://www.example.com/uploaddata.php", "data=" & data)
MessageBox.Show(response)
Все содержимое uploaddata.php:
<?php
if (isset($_POST["data"]))
{
var_dump($_POST['data']);
$data=$_POST['data'];
file_put_contents('data.txt', $data);
}
else
{
echo "ERROR: No data!";
}
?>
Содержимое data.txt после вызоваsendStringToServer () в приложении vb.net:
line1
line2
line3