碰到一个奇葩问题,关于fopen txt,打不开文件的问题。

criycee 2017-10-20 05:12:10
我做了个程序,情况是这样的。
一、系统:linux nginx php
二、程序过程:
1、编写了一个pro1.php,改写存在的abc.txt,程序如下:(执行成功)
$tmp=tempnam("/tmp",'');//建立临时文件
$f2=fopen($tmp,'w');
foreach($newarr as $key=>$value)
{
if($key<>''){
fputs($f2,$key.",".$value[0].",".$value[1].",".$value[2].",".$value[3].",".$value[4].",".$value[5].",".$value[6].",".$value[7].",".$value[8].",".$value[9].",".$value[10].",".$value[11]."\r\n");
}
}
fclose($f2);
rename($tmp,'/alidata/www/default/abc.txt');
2、我是在linux下面,用命令行php /alidata/www/default/pro1.php,执行pro1.php(执行成功)
3、编写程序pro2.php,读取abc.txt,在浏览器运行。程序如下:执行失败,无法打开abc.txt
$filename = 'abc.txt';
$handle = fopen($filename, "r");
if(!$handle) exit('文件打开失败');
$contents = fread($handle, filesize($filename));
echo $contents;
fclose($handle);

请问大家是什么问题?如何解决这个问题?
申明一下,绝对不是路劲问题,为什么呢?因为我试了好多次自己做了一个同名的abc.txt,放在同样的位置。pro2.php可以读取出abc.txt的内容。
如果没有解决方案,希望大家能够给出dbug方法,可以找出问题在哪里?去掉if(!$handle) exit('文件打开失败'),打开display_error,也没错误报出来,无语。
...全文
597 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Suzuki Mirai 2017-11-09
  • 打赏
  • 举报
回复
老哥,我也是再centos下面用php test.php,就能正常打开文件,浏览器就不行,还啥提示都没有,你是咋弄的
criycee 2017-10-21
  • 打赏
  • 举报
回复
谢谢各位,我曲线救国了。没办法,用其他方法绕过了这个问题。
criycee 2017-10-21
  • 打赏
  • 举报
回复
大家请仔细看一下我的问题及说明,谢谢。
criycee 2017-10-21
  • 打赏
  • 举报
回复
to xuzuning $tmp=tempnam("/tmp",'');//建立临时文件 $f2=fopen($tmp,'w'); foreach($newarr as $key=>$value) { if($key<>''){ fputs($f2,$key.",".$value[0].",".$value[1].",".$value[2].",".$value[3].",".$value[4].",".$value[5].",".$value[6].",".$value[7].",".$value[8].",".$value[9].",".$value[10].",".$value[11]."\r\n"); } } fclose($f2); rename($tmp,'/alidata/www/default/abc.txt');,这一句rename成abc.txt了。
hongmei85 2017-10-20
  • 打赏
  • 举报
回复
看看/tmp目录存在吗,有写权限没
Mechnaic 2017-10-20
  • 打赏
  • 举报
回复
fopen() 函数打开文件或者 URL ,如果打开失败,返回 FALSE 你的 abc.txt 不存在,打不开的 检验一下文件不存在就创建文件,再打开
xuzuning 2017-10-20
  • 打赏
  • 举报
回复
$tmp=tempnam("/tmp",'');//建立临时文件 $f2=fopen($tmp,'w'); 凭什么说文件名是 abc.txt?
criycee 2017-10-20
  • 打赏
  • 举报
回复
补充一下,同样的不能执行的abc.txt和pro2.php,我放在apache,windows下,又可以执行。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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