无法在PHP中将空格添加到字符串中

时间:2015-01-02 17:21:38

标签: php string whitespace

我正在尝试制作一个网络表单,逐行输出到平面文本文件,输入到Web表单的内容。几个字段不是必需的,但输出文件必须输入空格以用于任何不是填写完。这是我正在尝试的:

$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);
    }

但是,当我检查输出时,空格不显示。关于这是怎么回事?提前谢谢!

2 个答案:

答案 0 :(得分:3)

str_pad填充空格,不添加空格。您使用空格填充现有值,使其长度为6个字符,而不是为该值添加6个空格。因此,如果$_SESSION["emp_id"]长度为6个字符或更长,则不会添加任何内容。

答案 1 :(得分:1)

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);
}

干杯!