Записать массив в файл с идентификатором?

#php #arrays #fwrite

#php #массивы #fwrite

Вопрос:

Можете ли вы помочь мне записать выбранные значения из формы в файл с их идентификатором. У меня есть html-форма:

 <form name="frm1" method="post" action="form_to_write.php">
    <h4>q1</h4>
    <input type="radio" name="answer[1]" value="someValue1" />someValue1<br />
    <input type="radio" name="answer[1]" value="someValue2" />someValue2<br />
    <input type="radio" name="answer[1]" value="someValue3" />someValue3
    <h4>q2</h4>
    <input type="radio" name="answer[3]" value="someValue4" />someValue4<br />
    <input type="radio" name="answer[3]" value="someValue5" />someValue5<br />
    <input type="radio" name="answer[3]" value="someValue6" />someValue6
    <h4>q3</h4>
    <input type="radio" name="answer[2]" value="someValue9" />someValue9<br />
    <input type="radio" name="answer[2]" value="someValue7" />someValue7<br />
    <input type="radio" name="answer[2]" value="someValue8" />someValue8
    <input type="submit" value="submit" name="submit"/>
</form>
 

И мой файл form_to_write.php :

 $array = array_map("rtrim", $_POST['answer']);
$str = implode("rn", $array);
$date="date_not_work"; //date('m-d-y_H:i:s')
$fp = fopen($date."_out.txt", "w ");
$write=fwrite($fp, $str);
fclose($fp);

if ($write) echo 'Write is done!';
else echo 'Error!';
 

Мне нужен результат в таком файле:

 1|value of 1
3|value of 3
2|value of 2
 

Теперь он записывает только значения.

Ответ №1:

 $str = '';
foreach ($_POST['answer'] as $num => $answer) {
  $str .= "$num|$answerrn"; //i see no point in doing rtrim here
}
 

вместо

 $array = array_map("rtrim", $_POST['answer']);
$str = implode("rn", $array);
 

что касается даты, это, вероятно, из-за : символов.

сделайте его "y-m-d_H-i-s" форматным.
обратите внимание на порядок y-m-d. это намного надежнее, поскольку позволяет сортировать ваши файлы по дате

Комментарии:

1. Большое вам спасибо! Знаете ли вы, почему, если я хочу создать имя выходного файла с датой (используя $date=date('m-d-y_H:i:s'); ) — это не работает?

2. см. Обновление. тем не менее, вы должны быть более описательными. "isn't work" не является хорошим описанием проблемы.