为什么不使用PHP写入txt文件

时间:2013-09-10 12:03:35

标签: php html

我正在尝试将一些简单的文本写入文本文件但写入不起作用,下面是我正在使用的代码:代码有什么问题?

<?php
// create short variable names

$tireqty = 24;
$oilqty = 34;
$sparkqty = 12;


echo "<p>Your order is as follows: </p>";
echo $tireqty." tires<br />";
echo $oilqty." bottles of oil<br />";
echo $sparkqty." spark plugs<br />";


@ $fp=fopen("/order.txt","w");

   if(!$fp){
     echo "The file is not exists";

     exit;
     }

$outputstring = $date.'\t'.$tireqty.' tires \t'.$oilqty.' oil\t'
     .$sparkqty.' spark plugs\t\$'.$totalamount.'\t'. $address.'\n';



fwrite($fp, $outputstring);
fclose($fp);

echo "Order have written into order.txt";

2 个答案:

答案 0 :(得分:0)

您正在尝试将文件写入根目录:

@ $fp=fopen("/order.txt","w");

/表示绝对路径。出于安全原因,99%的Web服务器无权将文件写入根文件夹。您应该将文件写入/tmp或Web服务器具有写访问权限的其他目录。

$fp = fopen(dirname(__FILE__) . "/order.txt","w");

这会将文件'order.txt'写入与PHP脚本相同的目录。 dirname获取文件路径的目录名,__FILE__是一个PHP常量,等于当前脚本的绝对路径。它可能等于/var/www/html/test.php

从PHP 5.3.O开始,常量__DIR__也可用,等于dirname(__FILE__)

答案 1 :(得分:0)

在斜杠(/)前加一个点(。)表示当前目录

$fp=fopen("./order.txt","w");

也可以在

中使用双引号
$outputstring = $date."\t".$tireqty." tires \t".$oilqty." oil\t"
 .$sparkqty." spark plugs\t\$".$totalamount."\t". $address."\n";

获得实际输出。 \ t \ n作为单引号中的字符