在Apache本地服务器的目录下建立了文件夹BobOrder,在这个文件夹下建立了vieworder.php文件,代码如下:
<?php
    //Create short variable name
    $DOCUMENT_ROOT =$_SERVER['DOCUMENT_ROOT'];?>
<html>
<head>  <title>Bob's Auto Parts - Customer Orders'</title></head>
<body>  <h1>Bob's Auto Parts'</h1>  <h2>Customer Orders</h2>
<?php
   @$fp = fopen("$DOCUMENT_ROOT/../orders.txt",'rb');
   if(!$fp){
    echo "<p><strong>No orders pending.Please try again later.</strong></p>";
    exit;
   }
   while(!feof($fp)){
    $order = fgets($fp,999);
    echo $order."<br />";
   }
?></body>
</html>结果输出
No orders pending.Please try again later.但是如果把加红处的代码修改成如下
<?php
    //Create short variable name
    //$DOCUMENT_ROOT =$_SERVER['DOCUMENT_ROOT'];?>
<html>
<head>  <title>Bob's Auto Parts - Customer Orders'</title></head>
<body>  <h1>Bob's Auto Parts'</h1>  <h2>Customer Orders</h2>
<?php
   @$fp = fopen("orders.txt",'rb');
   if(!$fp){
    echo "<p><strong>No orders pending.Please try again later.</strong></p>";
    exit;
   }
   while(!feof($fp)){
    $order = fgets($fp,999);
    echo $order."<br />";
   }
?></body>
</html>
则可以正确输出如下结果:
Bob's Auto Parts'
Customer Orders
16:27 17th November 2009 2 tires 5 oil 4 spark plugs $292.6 
16:27 17th November 2009 2 tires 5 oil 4 spark plugs $292.6 
16:27 17th November 2009 2 tires 5 oil 4 spark plugs $292.6 
16:27 17th November 2009 2 tires 5 oil 4 spark plugs $292.6 
16:27 17th November 2009 2 tires 5 oil 4 spark plugs $292.6 
16:27 17th November 2009 2 tires 5 oil 4 spark plugs $292.6 
请指点一下哪里出错了?
服务器版本: 5.4.3-beta-community

解决方案 »

  1.   

    $_SERVER['DOCUMENT_ROOT']."/../orders.txt"是不是同当前目录路径相同,不相同就没得讲,路径都不相同,结果肯定不同。建议楼主在fopen前,输出一下echo "$DOCUMENT_ROOT/../orders.txt",看看是不是所要的路径。
      

  2.   

    变量名有“ _ ”好像最好分开写,即是"$DOCUMENT_ROOT/../orders.txt"写成$DOCUMENT_ROOT."/../orders.txt"
      

  3.   


    输出的是
    /../orders.txt
    这个txt文件的绝对路径是
    D:\Apache\htdocs\BobOrder\orders.txt
    这个怎么解决?