我在虚拟主机上使用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中的设置造成的?谢谢!
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中的设置造成的?谢谢!
fopen('d:/a.txt','r');
?>
$fp = fopen('d:/a.txt','r');$read = fread( $fp, filesize( 'd:/a.txt' ) );echo $read;?>
如果我没猜错,楼主用的应该是windows的环境,并且很有可能是IIS??
如果是IIS的话,是Win NTFS盘下去除了everyone 权限引起的,在安全权限中加个 Internet 来宾账号就解决了。如果不是IIS,而是Apache的话,我就不知道为什么了,因为我刚刚做了测试,应该是没有问题的,这和PHP.ini是没有关系的,应该是和apache的配置有关
在这种操作系统下,盘符都是以/开头的。
所以打开相对路径的文件是正确的。<?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');
?>
注意路径要和你前面出错提示的路径一样
本机应该是这样,服务器用相对路径就行,前提是这个txt 文件要存在~~
fopen('d:\\a.txt','r');
?>
你写的代码不通用.
windows代码,拿到linux下去用,所以是不行的.