2014-02-28 32 views
-2

香港专业教育学院得到了以下FWRITE代码,带,分离数据,并结束在))写入文本文件 - 布局搞砸了 - PHP

$shapeType = $_POST['shapeType'].','.$_POST['triangleSide1'].','.$_POST['triangleSide2'] 
.','.$_POST['triangleSide3'].','.$_POST['triangleColour'].'))'; 
fwrite($handle, $shapeType); 

,但是这是它在文本文件中保存如何.. 。

,,,,))三角,180,120,80,红色))

为什么有第一套

,,,,,))

出现在它应该是什么样子面前?

+0

也许是因为你之前写了一些东西进入该文件...?! – deceze

+0

加油。这是你的第三个非常基本的问题,在5分钟内完全没有显示。你甚至不试图解决自己的问题。 – MueR

+0

你可以发布更多的代码! – raiserle

回答

2

您需要在每行的末尾添加一个新的行字符。否则你的线路将全部碰到对方。

使用PHP_EOL,因为它会自动使用操作系统适当的新行字符序列。

PHP_EOL(串)
正确的 '高端路线' 符号这个平台。 可用,因为PHP 4.3.10和5.0.2 PHP

$shapeType = $_POST['shapeType'].','.$_POST['triangleSide1'].','.$_POST['triangleSide2'] 
.','.$_POST['triangleSide3'].','.$_POST['triangleColour'].'))'.PHP_EOL; 

FYI,这可能是有点清洁使用sprintf()做:

$shapeType = sprintf("%s,%s,%s,%s,%s))%s", 
    $_POST['shapeType'], 
    $_POST['triangleSide1'], 
    $_POST['triangleSide2'], 
    $_POST['triangleSide3'], 
    $_POST['triangleColour'], 
    PHP_EOL 
); 
+0

当然会的。你为什么认为它不?如果你发现它不是那么你的代码告诉它不要。但是这个代码只准备你的数据输入。 –

2

没有看到更多的代码,我猜的您发布到同一个文件,并且在您编写文件之前,您不检查是否有POST请求。因此,你可能也会在GET请求上写入文件,导致出现空条目。

你会需要这样的东西:

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
    // ... 
    $shapeType = $_POST['shapeType'].','.$_POST['triangleSide1'].','.$_POST['triangleSide2'] 
.','.$_POST['triangleSide3'].','.$_POST['triangleColour'].'))'; 
    fwrite($handle, $shapeType); 
    // ... 
} 

编辑:顺便说一句,你应该使用fputcsv作为采取逃避的报价照顾,你应该在例如增加了未来发生改变的东西描述字段。

+1

我觉得我们都在这里 –