我正在尝试将一些简单的文本写入文本文件但写入不起作用,下面是我正在使用的代码:代码有什么问题?
<?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";
答案 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作为单引号中的字符