Как использовать цикл foreach для сохранения $ _POST в текстовый файл - PullRequest
0 голосов
/ 03 марта 2019

При отправке формы я хочу записать входные данные формы в текстовый файл, включая 2 столбца html-таблицы:

function toString()
{

    $filename = 'D:\file_' . time() . '_' . $_SESSION['username'] . '.txt';

    $data = 'grid_blocks=' . $_POST["grid_blocks"] . "\n" .
        'leverettj=' . $_POST["leverettj"] . "\n" .
        'length=' . $_POST["length"] . "\n" .
        'krw='. "\n";

    $file = file_put_contents($filename, $data, FILE_APPEND | LOCK_EX);
    if ($file === false) {
        die('There was an error writing this file');
    } else {
        echo "$file bytes written to file";
    }
}

Мне удалось записать отдельные значения в файл .txt, но теперь я хочу написать два столбца таблицы HTML также в этот файл.Например, значения столбцов: sw1: 0,15, 0,2, 0,3 и krw: 100, 200, 300 Я хочу записать эти значения в этом формате в текстовый файл: krw = 0,15% 100 ++ 0,2% 200 ++ 0,3% 300

Это мой цикл foreach:

foreach ($_POST['sw1'] as $key => $value) {
        if (!empty($_POST['sw1'][$key]) && ($_POST['krw'][$key])) {
            $_POST['sw1'][$key];
            $_POST['krw'][$key];
        }
    };

Foreach должен быть реализован после 'krw ='.в переменной $ data.Может кто-нибудь, пожалуйста, укажите мне правильное направление или с примерами?

РЕДАКТИРОВАТЬ Я понял это, теперь это мой код:

function toString()
{

    $filename = 'D:\file_' . time() . '_' . $_SESSION['username'] . '.txt';
    $tableKrw = "";
    foreach ($_POST['sw1'] as $key => $value) {
        if (!empty($_POST['sw1'][$key]) && ($_POST['krw'][$key])) {
            $sw1=$_POST['sw1'][$key];
            $sw2=$_POST['krw'][$key];
            $tableKrw .= $sw1 .'&'. $sw2.'+';
        }
    };

    $data = 'grid_blocks=' . $_POST["grid_blocks"] . "\n" .
        'leverettj=' . $_POST["leverettj"] . "\n" .
        'length=' . $_POST["length"] . "\n" .
        'krw=' . $tableKrw . "\n";

    $file = file_put_contents($filename, $data, FILE_APPEND | LOCK_EX);

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Конечно, вот пример того, как foreach () через массив $ _POST и записать значения в текстовый файл.

<form method="POST">
  First name:<br>
  <input type="text" name="firstname"><br>
  Last name:<br>
  <input type="text" name="lastname">
  <input type="submit">
</form> 

<?php
$output = "";

if (isset($_POST)) {
    foreach ($_POST as $key => $value) {
        $output .= "Key: {$key} Value: {$value} \n";
    }
}

$save_dir = "temp/";
file_put_contents($save_dir . "log.txt", $output);
0 голосов
/ 04 марта 2019

Вам нужно что-то вроде этого ...

$stringToAppend = "";
foreach ($_POST['sw1'] as $key => $value) {
        if (!empty($_POST['sw1'][$key]) && ($_POST['krw'][$key])) {
            $_POST['sw1'][$key];
            $_POST['krw'][$key];
            $stringToAppend .= $_POST['sw1'][$key];
        }
    };

$data .= $stringToAppend;

Это создаст новую строку (вы можете добавить любые значения к $stringToAppend, используя оператор. =), И добавьте эту строку кконец вашей $data строки.

...