PHP中内置变量$_SERVER['DOCUMENT_ROOT']的使用方法

caofei277 2009-11-17 06:31:18
在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
...全文
184 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
caofei277 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gingzai777 的回复:]
$_SERVER['DOCUMENT_ROOT']."/../orders.txt"是不是同当前目录路径相同,不相同就没得讲,路径都不相同,结果肯定不同。

建议楼主在fopen前,输出一下echo "$DOCUMENT_ROOT/../orders.txt",看看是不是所要的路径。
[/Quote]

输出的是
/../orders.txt
这个txt文件的绝对路径是
D:\Apache\htdocs\BobOrder\orders.txt
这个怎么解决?
Zijian_Zhang 2009-11-17
  • 打赏
  • 举报
回复
变量名有“ _ ”好像最好分开写,即是
"$DOCUMENT_ROOT/../orders.txt"
写成
$DOCUMENT_ROOT."/../orders.txt"
Zijian_Zhang 2009-11-17
  • 打赏
  • 举报
回复
$_SERVER['DOCUMENT_ROOT']."/../orders.txt"是不是同当前目录路径相同,不相同就没得讲,路径都不相同,结果肯定不同。

建议楼主在fopen前,输出一下echo "$DOCUMENT_ROOT/../orders.txt",看看是不是所要的路径。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧