<?php
/**
* Created by PhpStorm.
* User: tiankang
* Date: 2018/4/21
* Time: 14:03
*/
//1.创建或打开一个本地文件
//以只读方式打开文件,不会创建新文件 r+(读写),指针在开头
//$fl = fopen('file2.txt','r') or die('打开失败');
//以w(只写)方式打开文件,如文件不存在则创建, w+(读写),指针在开头
//$fl = fopen('file5.txt','w') or die('打开失败');
//以a(追加只写)方式打开文件,如文件不存在则创建, 类似: a+(追加读写),指针在未尾
//$fl = fopen('file3.txt','a') or die('打开失败了');
//2.打开一个远程文件
$fl = fopen('http://www.runoob.com/php/php-file.html','r') or die('失败');
//feof()函数检测是否已经到达文件末尾 在循环遍历未知长度的数据时,feof()函数很有用
if (feof($fl)){
echo '文件结尾';
}
//3.读取文件到浏览器
//从文件指针处读取一行并自动下移,fgets()函数用于从文件中逐行读取文件
//while($s = fgets($fl)){
// print $s;
//}
//fgetss()可过滤掉所有的HTML标签
//4. 逐字符读取文件:
//while(!feof($fl)){
// echo fgetc($fl);
//
//}
//将整个页面读入到一个字符串,这在抓取其它网站内容时很有用,配合过滤正则
//file_get_contens($filename)返回字符串
//$content = file_get_contents('http://www.php.cn');
//// echo '文件大小: '.strlen($content).' 字节', '<br>';
//echo '文件大小:'.strlen($content).'字节','<br>';
//
//if (strlen($content)>0){
// echo $content;
//}
//5. 把整个文件读入到数组中,用换行符进行分割
//$arr = file('maxim.txt');
//
//foreach ($arr as $key => $value){
//
// echo '<span style="color: red">格言'.($key+1).': </span>'.$value.'<hr>';
//
//}
// shuffle($arr),随机打乱一个数组,返回true/false
//if (shuffle($arr)){
// echo current($arr);
//
//}
//
//fclose($fh);
//目录遍历操作
//传统目录函数
//第一步:opendir('目录')打开目录,成功返回资源,失败返回false
//第二步:readdir($dir)读取目录内容,成功
//返回目录名,失败返回false
//第三步:colsedir($dir)关闭当前目录
//$dir = opendir('../0418源码') or die('打开失败');
//while(false != ($file = readdir($dir))){
//
// if ($file !='.' && $file !='..'){
// print $file.'<br>';
// }
//}
//closedir($dir);
//echo '<hr style="color:red;">';
//第二种方式 把目录内容保存到数组中进行遍历
//第一步:scandir()
//第二步:遍历目录数组
//$fileArr = scandir('../0417源码');
//foreach ($fileArr as $key=>$value){
// if ($value != '.' && $value != '..'){
// echo $value,'<br>';
//
// }
//}
//目录迭代器
//第一种方式: DirectorInterator:
//第一步:实例化目录对象
//第二步:遍历目录
$file = new DirectoryIterator('../0416源码');
foreach ($file as $dir){
print $file->getPathname()."<br>";
if (!$dir->isDot()){ //仅过滤掉点目录文件,目录仍保留
echo $file->getPathname(),'<br>';
}
}
echo '<hr style="color: red">';
//第二种方式
//递归目录迭代器 RecursiveDirectoryIterator
//重复递归迭代器 RecursiveIteratorIterator
$dir = new RecursiveDirectoryIterator('../0417源码');
foreach (new RecursiveIteratorIterator($dir) as $file){
if ($file ->isFile()){//只显示文件
echo $file->getPathname(),'<br>';
}
}
//1.分解文件名
//系统常量
echo __FILE__ ,'<br>'; //获取文件路径
//1.获取文件名
echo '文件名:' .basename(__FILE__).'<br>';
//2.获取目录名
echo '目录名:'.dirname(__FILE__).'<br>';
//php5.3+推荐使用常量__DIR__代替dirname()
echo __DIR__, '<br>';
//3.pathinfo():将目录名,文件名,扩展或解析到一个数组中
$pathInfo = pathinfo(__FILE__);
foreach ($pathInfo as $key=>$value){
echo $key.'->'.$value , '<br>';
}
//系统提供一个常量:DIRECTORY_SEPARATOR,可以根据系统自动确定路径分隔符类型
$path = dirname(__FILE__).DIRECTORY_SEPARATOR.basename(__FILE__);
echo $path,'<br>';
//删除文件
//unlink('file2.txt') or die('删除失败');
//复制文件
copy('maxim.txt','../0419源码/maxim01.txt') or die('复制失败');
//更名
rename('maxim01.txt','格言.txt') or die('重命名失败');
//创建目录
//mkdir('admin1');
//移动文件
//rename('格言.txt','/admin1/');
//删除目录
//rmdir('admin1');点击 "运行实例" 按钮查看在线实例
文件上传
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<fieldset>
<legend align="center">
文件上传
</legend>
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
</fieldset>
<p align="center">
<input type="submit" name="submit" value="提交">
</p>
</form>
</body>
</html>
<?php
/**
* Created by PhpStorm.
* User: tiankang
* Date: 2018/4/23
* Time: 15:56
*/
/*
*
$_FILES["file"]["name"] - 上传文件的名称
$_FILES["file"]["type"] - 上传文件的类型
$_FILES["file"]["size"] - 上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
*/
//允许上传的图片的后缀
$allowedExts = array('gif','jpeg','jpg',);
//把选中的文件名拆成数组
$tempArr = explode('.',$_FILES['file']['name']);
//取出后缀名
$extensionName = end($tempArr);
//判断选中的文件格式是否符合要求
if ((($_FILES["file"]["type"] == "image/gif")||
($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png"))&& in_array($extensionName,$allowedExts)){
if ($_FILES['file']['error']>0){
echo '错误'.$_FILES['file']['error'].'<br>';
}else{
echo '上传文件名:'.$_FILES['file']['name'].'<br>';
echo '文件类型:'.$_FILES['file']['type'].'<br>';
echo '文件大小:'.($_FILES['file']['size']/1024).'kb<br>';
echo '文件临时存贮的位置:'.$_FILES['file']['tmp_name'].'<br>';
//判断当前目录下的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'];
//上传成功
echo "<script>alert('文件上传成功')</script>";
}
}
}else{
//上传成功
echo "<script>alert('非法的文件格式')</script>";
echo '非法的文件格式';
}点击 "运行实例" 按钮查看在线实例

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号