PHP文件处理
fopen()函数用于在PHP中打开文件夹
打开文件
文件打开模式
r 只读。在文件的开头开始。
r+读/写。在文件的开头开始。
w只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+读/追加。通过向文件末尾写内容,来保持文件内容。
x只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
如果文件不能被打开
如果fopen()函数无法打开指定文件,则返回0(false)
如果fopen()函数不能打开指定的文件,下面的实例会生成一段消息
检测文件末尾(EOF)
feof()函数检测是否已经达到文件末尾(EOF)。
在循环遍历位置长度数据时,feof()函数很有用
实例 if(feof($file)) echo "文件结尾";
逐行读取文件
fgets()函数用于从文件中逐行读取文件。
注释:在调用该函数之后,文件指针会移动到下一行。
实例:
while(!feof($file)) //判断是否到文件结尾
{echo fgets($file). "
"; //打印当前行数据
}fclose($file);?>
文件上传
创建一个文件上传表单
php教程(runoob.com)文件名:
标签的enctype属性规定了在提交表单时要使用哪种内容类型,在表单需要二进制数据时,比如说文件内容,可以使用multipart/form-data创建上传脚本,获取文件相关信息
<?phpif ($_FILES["file"]["error"]>0){echo "错误:".$_FILES["file"]["error"]."
";
}else{//获取文件信息
echo "上传文件名".$_FILES["file"]["name"]."
"; //label标签的file属性
echo "文件类型".$_FILES["file"]["type"]."
";echo "文件大小".(_FILES["file"]["size"]/1024)."KB
";echo "文件临时存储位置".$_FILES["file"]["tmp_name"];
}?>
上传限制
用户只能上传GIF,jpeg,jpg,png文件,且文件大小必须小于200kb
//判断文件类型
if((($_FILES["file"]["type"] == "image/gif")||($_FILES["file"]["type"] == "image/jpeg")||($_FILES["file"]["type"] == "image/jpg")||($_FILES["file"]["type"] == "image/png"))&&($_FILES["file"]["size"] < 204800) //小于200KB
&& in_array($extension,$allowedExts))
{if($_FILES["file"]["error"]>0){echo "错误:".$_FILES["file"]["error"]."
";
}else{//获取文件信息
echo "上传文件名".$_FILES["file"]["name"]."
"; //label标签的file属性
echo "文件类型".$_FILES["file"]["type"]."
";echo "文件大小".(_FILES["file"]["size"]/1024)."KB
";echo "文件临时存储位置".$_FILES["file"]["tmp_name"];//判断当前目录下的upload目录是否存在该文件
//如果没有upload目录,就创建
if(file_exists("upload/".$_FILES["file"]["name"]))
{echo $_FILES['file']["name"]."文件已存在";
}else{//如果upload目录不存在该文件则将文件上传到upload目录下
move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);echo "文件存储在:" . "upload/".$_FILES['file']['name'];
}
}
}else{echo "非法的文件格式";
}?>