我得到了以下fwrite代码,分隔数据并以数据结尾))
$shapeType = $_POST['shapeType'].','.$_POST['triangleSide1'].','.$_POST['triangleSide2']
.','.$_POST['triangleSide3'].','.$_POST['triangleColour'].'))';
fwrite($handle, $shapeType);
但这是它保存在文本文件中的方式......
,,,,))三角,180,120,80,红色))
为什么要有第一套
,,,,,))
出现在应该是什么样子的前面?
答案 0 :(得分:2)
您需要在每行的末尾添加一个新的行字符。否则你的线都会相互碰撞。
使用PHP_EOL
,因为它会自动使用操作系统相应的新行字符序列。
PHP_EOL(string)
此平台的正确“行尾”符号。 自PHP 4.3.10和PHP 5.0.2起可用
$shapeType = $_POST['shapeType'].','.$_POST['triangleSide1'].','.$_POST['triangleSide2']
.','.$_POST['triangleSide3'].','.$_POST['triangleColour'].'))'.PHP_EOL;
仅供参考,使用sprintf()
可能会更清洁:
$shapeType = sprintf("%s,%s,%s,%s,%s))%s",
$_POST['shapeType'],
$_POST['triangleSide1'],
$_POST['triangleSide2'],
$_POST['triangleSide3'],
$_POST['triangleColour'],
PHP_EOL
);
答案 1 :(得分:2)
在没有看到更多代码的情况下,我猜你会发布到同一个文件,并且在编写文件之前不会检查是否发出了POST
请求。因此,您可能也会在GET
请求中写入您的文件,导致出现空条目。
您需要以下内容:
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
// ...
$shapeType = $_POST['shapeType'].','.$_POST['triangleSide1'].','.$_POST['triangleSide2']
.','.$_POST['triangleSide3'].','.$_POST['triangleColour'].'))';
fwrite($handle, $shapeType);
// ...
}
编辑顺便说一句,您应该使用fputcsv
来处理转义引号,如果您将来更改某些内容,例如说明字段。