Я пытаюсь создать веб-форму, которая выводит в плоский текстовый файл построчно, что такое ввод в веб-форму. Некоторые поля не обязательны, но выходной файл должен вводить пробелы для того, что не заполнено. Вот что я пытаюсь:
$output = $_SESSION["emp_id"];
if(!empty($_POST['trans_date'])) {
$output .= $_POST["trans_date"];
}else{
$output = str_pad($output, 6);
}
if(!empty($_POST['chart'])) {
$output .= $_POST["chart"];
}else{
$output = str_pad($output, 6);
}
write_line($output);
function write_line($line){
$file = 'coh.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new line to the file
$current .= $line . PHP_EOL;
// Write the contents back to the file
file_put_contents($file, $current);
}
Однако, когда я проверяю свой вывод, пробелы не отображаются. Есть идеи, что с этим происходит? Заранее спасибо!
str_pad
заполнение пробелами, а не добавление пробелов. Вы дополняете существующее значение пробелами так, чтобы оно было длиной 6 символов, не добавляя к нему 6 пробелов. Так что если $_SESSION["emp_id"]
длиной 6 или более символов, ничего не будет добавлено.
str_pad () не будет добавлять это количество пробелов, а скорее сделает строку такой длины, добавив соответствующее количество пробелов. Пытаться str_repeat ():
$output = $_SESSION["emp_id"];
if(!empty($_POST['trans_date'])) {
$output .= $_POST["trans_date"];
}else{
$output = $output . str_repeat(' ', 6);
}
if(!empty($_POST['chart'])) {
$output .= $_POST["chart"];
}else{
$output = $output . str_repeat(' ', 6);
}
write_line($output);
function write_line($line) {
$file = 'coh.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new line to the file
$current .= $line . PHP_EOL;
// Write the contents back to the file
file_put_contents($file, $current);
}
Ура!