PHP Warning: fclose(): 怎么解决 在线等待

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Warning: fclose(): 怎么解决 在线等待相关的知识,希望对你有一定的参考价值。

提示出错
Warning: fclose(): supplied argument is not a valid stream resource in D:\www\www.52get.com\install.php on line 275

Warning: fclose(): supplied argument is not a valid stream resource in D:\www\www.52get.com\install.php on line 287
数据库连接成功,请继续 ……

程序正在准备创建数据表,请稍候 ……

Warning: file_get_contents(./inc/install/aimv.sql) [function.file-get-contents]: failed to open stream: No such file or directory in D:\www\www.52get.com\install.php on line 313
无法读取安装数据: ./inc/install/aimv.sql

代码是
$file_name = './inc/const.php'; //要替换操作的文件
@$fp = fopen($file_name,'r'); //打开要替换的文件
@$conf_file = fread($fp,filesize($file_name));
$conf_file = preg_replace("/httpurl\s*\=\s(\'|\")(.*?)(\"|')/","httpurl = \"" . $httpurl. "\"",$conf_file);
$conf_file = preg_replace("/databasePrefix\s*\=\s(\'|\")(.*?)(\"|')/","databasePrefix = \"" . $databasePrefix. "\"",$conf_file);
@$fp = fopen($file_name,'w');
$fw = fwrite($fp, trim($conf_file));
fclose($fp);

行275是 fclose($fp);

参考技术A 同上。。改为a试试。。。或者先弄个txt文本来测试哈看fopen函数成功没?
fopen("111.txt","a")。。路径也改哈。。不用前面的$file_name 。。这样就可以测试出是哪的问题了追问

我把FTP给你们看下 ftp://a@a:121.204.98.103
这个是访问的地址http://www.52get.com/install.php

追答

回答我改过了。。我进不去

追问

家我的QQ一下 81290882

追答

权限。。

本回答被提问者和网友采纳
参考技术B 我个人觉得你可能是在前面的语句中就发生了错误,但是因为加了@所以错误没有显示,你把所有的@都去掉,然后看看错误是从哪里来的。很可能是fopen发生错误了。 参考技术C 错误的原因是fclose关闭的是一个无效的句柄,也就是说,fclose参数是个无效的流.
你可能文件不存在吧?
把第二行的r改成r+试试.追问

也不行

追答

文件存在不?
这样试下.
我把r换成了r+,把w换成w+.
$file_name = './inc/const.php'; //要替换操作的文件
@$fp = fopen($file_name,'r+'); //打开要替换的文件
@$conf_file = fread($fp,filesize($file_name));
$conf_file = preg_replace("/httpurl\s*\=\s(\'|\")(.*?)(\"|')/","httpurl = \"" . $httpurl. "\"",$conf_file);
$conf_file = preg_replace("/databasePrefix\s*\=\s(\'|\")(.*?)(\"|')/","databasePrefix = \"" . $databasePrefix. "\"",$conf_file);
fclose(@$fp);
@$fp = fopen($file_name,'w+');
$fw = fwrite($fp, trim($conf_file));
fclose($fp);
这样应该可以,否则把@去掉.

参考技术D $filenum=fopen($file_name,"r");
... ...
fclose($filenum);追问

只是 改了变量名 但是还是不对啊

追答

俺的程序就是这样写的,没有你的@

php

文件操作

1.打开文件fopen写入fwrite读取fgets

$f = fopen(‘data‘,‘w‘);

fwrite($f,‘Hello php‘);

fclose($f);

echo  ‘OK‘;

$content = fgets($f);

fclose($f);

>在php中如果是想要忽略掉某个函数的警告,只需要要在这个函数的前满加上@符号即可

>fgets()只是读取一行数据,可以用while循环进行将整个文件都读取出来,读取到文件的末尾是EOF

>其中,也是可以用file_get_contents()这个函数直接将这个文件中的所有数据都读取出来的,不过他的参数是这个文件的完整路径

或者是相对的路径

 

2.图像

$img = imagecreate(400,300);  #//生成一个图片
imagecolorallocate($img,200,0,0);  #设置颜色

imageellipse($img,200,200,50,50,imagecolorallocate($img,0,255,0));#//在这个图片上面画上一个圆

header(‘Content-type:image/png‘);#因为默认情况下是以文本进行的输出,但是这里显然是不合适的,因为这里是图片,所以要改变包的头部信息(也就是MIME类型)
imagepng($img);  #输入一个图片

当然,很多的库函数可以再php.net这个网址上面找到

3.给图片打上水印

$img = imagecreatefromjpeg(‘1.jpg‘);  #选定一个特定的图片

imagestring($img,5,5,5,‘jikexueyuan.com‘,imagecolorallocate($img,255,255,0)); #打上一个特定的水印,包括这个水印的字体颜色等
header(‘Content-type: img/jpeg‘);   #改变包的头部的信息,
imagejpeg($img);   #输出这个图片





以上是关于PHP Warning: fclose(): 怎么解决 在线等待的主要内容,如果未能解决你的问题,请参考以下文章

PHP中fopen函数的问题

PHP 文件操作

PHP 文件操作

php

怎么把php格式的文件转换为TXT格式的文本?

向 fwrite / fopen / fclose 进程添加内容头