我在虚拟主机上使用fopen打开自己电脑中的某个文件,出现以下错误
Warning: fopen(d:\a.txt) [function.fopen]: failed to open stream: No such file or directory in /home/......./test.php on line 2代码如下:
<?
  fopen('d:\\a.txt','r');
?>而打开服务器上的某个文件却正常,是否是因为php.ini中的设置造成的?谢谢!

解决方案 »

  1.   

    <?
      fopen('d:/a.txt','r');
    ?> 
      

  2.   

    <?php
    $fp = fopen('d:/a.txt','r');$read = fread( $fp, filesize( 'd:/a.txt' ) );echo $read;?>
      

  3.   

    其实在PHP中,'\\'和'/'的效果是一样的,所以楼上的和楼主的都没有错
    如果我没猜错,楼主用的应该是windows的环境,并且很有可能是IIS??
    如果是IIS的话,是Win NTFS盘下去除了everyone 权限引起的,在安全权限中加个 Internet 来宾账号就解决了。如果不是IIS,而是Apache的话,我就不知道为什么了,因为我刚刚做了测试,应该是没有问题的,这和PHP.ini是没有关系的,应该是和apache的配置有关
      

  4.   

    /home/......./test.php 很明显,你的虚拟主机是Unix(或Linux等)的系统。
    在这种操作系统下,盘符都是以/开头的。
    所以打开相对路径的文件是正确的。<?php
        $path = "include/";
        $filename = "test.php";    define('ROOT', str_replace(array('\\', $path.$filename), array('/', ''), __FILE__));
        fopen(ROOT.'a.txt','r');
    ?>
    前面两个变量改成你的文件路径和名称即可,这样可根据需要生成相对路径
    你也可以直接<?php
        fopen('/home/www1/test.php','r');
    ?>
    注意路径要和你前面出错提示的路径一样
      

  5.   

    路径问题,自己注意下。毕竟本机测试和服务器的环境是不一样的,有时候是不允许访问D盘,C盘等相关目录的。linux主机的目录结构也不一样,同样有权限的限制。
      

  6.   

    fopen('d:/a.txt','r');
    本机应该是这样,服务器用相对路径就行,前提是这个txt 文件要存在~~
      

  7.   

    看你的提示信息,你的php環境是裝在linux系統上的,你要打開的文件又是裝在windows上的。要麼上傳文件到服務器,要麼mount一下win的盤。即使是mount了,對於你寫的fopen(d:a.txt),linux也是不認的。
      

  8.   

    <? 
      fopen('d:\\a.txt','r'); 
    ?> 
    你写的代码不通用.
    windows代码,拿到linux下去用,所以是不行的.