PHP创建文本文件-创建文本文件很困难

韦恩·林克斯

忙着学习php,书名为“ php and mysql web development 4th edition”。我在以下代码上遇到了麻烦。我正在尝试创建一个文本文件。我正在实时服务器上测试所有代码,但出现以下错误:

Warning: fopen(/home/truevvky/public_html/../orders/orders.txt): failed to open stream: No such file or directory in /home/truevvky/public_html/test/processorder.php on line 60 

Warning: flock() expects parameter 1 to be resource, boolean given in /home/truevvky/public_html/test/processorder.php on line 62.

这个想法是创建一个新的文本文件

<?php
    //create short variable names
    $tireqty = $_POST['tireqty'];
    $oilqty = $_POST['oilqty'];
    $sparkqty = $_POST['sparkqty'];
    $address = $_POST['address'];
    $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
    $date = date('H:i, jS F Y');
?>

<html>
    <head>
    <title>Bob's Auto Parts - Order Results</title>
    </head>
    <body>
    <h1>Bob's Auto Parts</h1>
    <h2>Order Results</h2>
    <?php           
    echo "<p>Order processed at ".date('H:i, jS F Y')."</p>";
    echo "<p>Your order is as follows: </p>";
    $totalqty = 0;
    $totalqty = $tireqty + $oilqty + $sparkqty;
    echo "Items ordered: ".$totalqty."<br />";
    if ($totalqty == 0) {
    echo "You did not order anything on the previous page!<br />";
    } else{
    if ($tireqty > 0) {
    echo $tireqty." tires<br />";
    }

    if ($oilqty > 0) {
        echo $oilqty." bottles of oil<br />";
    }

    if ($sparkqty > 0) {
                        echo $sparkqty." spark plugs<br />";
                    }
                }

                $totalamount = 0.00;            

                define('TIREPRICE', 100);
                define('OILPRICE', 10);
                define('SPARKPRICE', 4);

                $totalamount = $tireqty * TIREPRICE
                                + $oilqty * OILPRICE
                                + $sparkqty * SPARKPRICE;

                $totalamount = number_format($totalamount, 2, '.',' ');

                echo "<p>Total of order is $".$totalamount."</p>";
                echo "<p>Address to ship to is ".$address."</p>";           

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

                // open file for appending
                @ $fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'ab');

                flock($fp, LOCK_EX);

                if (!$fp) {
                    echo "<p><strong> Your order could not be processed at this time. 
                            Please try again later.</strong></p></body></html>";
                    exit;
                }

                fwrite($fp, $outputstring, strlen($outputstring));
                flock($fp, LOCK_UN);
                fclose($fp);

            ?>
        </body>
    </html>
克里斯托弗·奥尔蒂斯(Christopher Ortiz)

我正在写同一本书,找到了解决他问题的方法。我知道这很老,也许他想通了,但是想将我的答案提供给遇到此问题的其他人。

由于书中的某种原因,他在我们甚至不知道文件是否存在才导致错误之前就把它放了进去。flock()只是放置一个锁,以便我们可以写LOCK_EX和fwrite()然后写我们输出的任何内容,然后LOCK_UN释放该锁。

带有WAMP的$ DOCUMENT_ROOT地雷看起来像这样的“ C:/wamp/book/orders/orders.txt”,因此在代码中删除“ ..”。

 // open file for appending
 @ $fp = fopen("$DOCUMENT_ROOT/orders/orders.txt", 'ab');

 if (!$fp) {
   echo "<p><strong> Your order could not be processed at this time. 
   Please try again later.</strong></p></body></html>";
   exit;
 }

 //you move flock down here
 flock($fp, LOCK_EX);

 fwrite($fp, $outputstring, strlen($outputstring));
 flock($fp, LOCK_UN);
 fclose($fp);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建文本文件

来自分类Dev

从文本文件列表创建文件

来自分类Dev

Qt(C ++):QFile成功创建文本文件,但未写入文本文件

来自分类Dev

未在'if'语句中创建文本文件

来自分类Dev

使用SQL在Oracle中创建文本文件

来自分类Dev

在C#中创建文本文件

来自分类Dev

使用javascript创建文本文件

来自分类Dev

Python在错误的路径上创建文本文件

来自分类Dev

Java:读取,编辑和创建文本文件

来自分类Dev

未在'if'语句中创建文本文件

来自分类Dev

在可执行JAR中创建文本文件

来自分类Dev

创建文本文件android时出错

来自分类Dev

使用Matlab创建文本文件

来自分类Dev

如何通过python创建文本文件?

来自分类Dev

从列表中的每个链接创建文本文件?

来自分类Dev

使用VBA创建文本文件

来自分类Dev

使用 Servlet 时无法创建文本文件

来自分类Dev

创建文本文件并让用户选择下载它 PHP

来自分类Dev

如何使用MATLAB创建文本文件并逐字符编写文本?

来自分类Dev

Laravel电子邮件附加文本文件而不实际创建文件

来自分类Dev

如何在python代码中创建文件(默认情况下为文本文件)

来自分类Dev

自动创建文件夹内容的文本文件

来自分类Dev

从文件路径创建文本文件的有效方法

来自分类Dev

从文本文件中特定行的部分创建文件夹

来自分类Dev

在python中从两个不同的文件夹创建文本文件

来自分类Dev

用于为电影文件创建文本文件的批处理作业

来自分类Dev

如何从文本文件中的行动态创建文件

来自分类Dev

未在 Swift 的 applicationSupport 文件夹中创建文本文件

来自分类Dev

使用来自 csv 文件的输入从 jinja 模板创建文本文件

Related 相关文章

热门标签

归档