问题与控制字符 – PHP不打印\ t(制表符)

我正在发送带有标题的XLS文件。 一切工作正常。 但是当我告诉它打印选项卡以分隔XLS中的单元格打印\t 。 它不打印选项卡。 它只是在文件中打印'\ t',当我下载XLS文件时,应该在不同单元格中的所有内容都在一个文本中,如下所示:

 val1\tval2\tval3\t 

这三个值应该在其单独的单元格中分开。 我一直在尝试2个小时,现在没有任何工作:(。

我发送这样的标题:

 header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=".$filename.$fileextention); header("Pragma: no-cache"); header("Expires: 0"); 

只是打印值

 echo $val1 . '\t' . $val2 . '\t' . $val3; 

我曾尝试使用单一或双重quts。 和打印和回声都买仍然:(

试试这个(看引号)

 header('Content-type: application/vnd.ms-excel'); echo "val1\tval2\tval3"; 

我很确定引号引起了这个问题。

 echo $val1 . "\t" . $val2 . "\t" . $val3; 

应该做的事情。 只要看看这个:

 <?php echo 'Test\tTest'; echo "\r\n"; echo "Test\tTest"; echo "\r\n"; 

其输出:

 Test\tTest Test Test 

当你需要控制字符时使用双引号。 希望这可以解决你的问题。

使用双引号:“\ t”。 在单引号内只有\\\'被识别。

这应该工作:

 echo $val1 . "\t" . $val2 . "\t" . $val3; 

如果没有,这是PHP中的一个错误。