批改状态:合格
老师批语:
<meta charset='utf-8'>
<?php
//r为只读 无法创建文件 r+()可以读和写
//打开成功会返回一个文件资源,水太深,老师说先不说
//$fn = fopen('test.txt','r') or die('打开失败,没有找到test.txt文件');
//$fn2 = fopen('test.txt','w') or die('创建test.txt失败');
//$fn3 = fopen('test3.txt','a') or die('创建test.txt失败');
//用fopen()可以打开外部的链接
$fn3 = fopen('http://ent.163.com/18/0423/21/DG3U1EG400038FO9.html','r') or die('创建test.txt失败');
//while($s=fgets($fn3)){//fgets()函数从远程或者本地文件指针中读取一行出来
// print $s;
//}
//fgetss 去掉获取页面的标签
//while($s=fgetss($fn3)){//fgets()函数从远程或者本地文件指针中读取一行出来
// print $s;
//}
//file_get_contents('文件');读取文件到字符串
//$con = file_get_contents('test.txt');
//echo $con.'<br>';
//echo strlen($con).'<br>';
//echo mb_strlen($con,'utf8');
$arr = file('test3.txt');//file()这个函数很强大,可以读古诗
//echo '<pre>';
// print_r($arr);
//foreach($arr as $key=>$value){
// echo $key.':'.$value;
//}
//shuffle($arr);//shuffle打乱的函数
//print_r($arr);
//if(shuffle($arr)){
//// echo $arr[0];
// echo current($arr);//current返回一个数组中的值
//}
//array_rand返回的是键名
$keys = array_rand($arr,3);//随机数3个
foreach($keys as $value){//遍历出来
print $arr[$value].'<br>';
}文件的操作.读写,随机选取
<meta charset="UTF-8"/>
<?php
/*
* 目录的遍历操作:
* 传统过程函数 opendir();readdir();colsedir();分别是打开读取关闭
* 目录扫描器scandir();
*/
//$open = opendir('../0419') or die('打开失败');
//while(false != ($file = readdir($open))){
// if($file != '.' && $file !='..'){
// print $file.'<br>';
// }
//}
//colsedir($open);
$sctrr = scandir('../0419/');
//echo '<pre>';
//print_r($sctrr);
foreach($sctrr as $value){
if($value != '.' && $value !='..'){
echo $value.'<br>';
}
}目录的遍历.用到很直观的函数,opendir(),readdir(),colsedir();和目录扫描器scandir();
<meta charset="UTF-8"/> <?php //__FILE__系统常量 echo __FILE__."<br>"; //basename()文件名 echo basename(__FILE__)."<br>"; //获取目录名,不包含文件本身 echo dirname(__FILE__)."<br>"; //3.pathinfo();将目录名,文件名,扩展或者解析分成数组 $pathinfo = pathinfo(__FILE__); echo "目录名".$pathinfo['dirname'].'<br>'; echo "文件名".$pathinfo['basename'].'<br>'; echo "文件名".$pathinfo['extension'].'<br>'; //php中没有提供将这三个部分组成一个完整文件名的函数 //因为windows与unix上的目录分隔符不同 //windows是正斜线:/ , unix/linux上的是反斜线\ //所以系统提供一个常量:DIRECTORY_SEPARATOR,可以根据系统自动确定路径分隔符类型 $path = dirname(__FILE__).DIRECTORY_SEPARATOR.basename(__FILE__); echo $path,'<br>';
获取文件的地址,文件名等等 函数pathinfo(),可以将文件等解析成数组.
<meta charset="UTF-8"/>
<?php
//文件删除
//unlink('new_file.css') or die('无法删除new_file.css');
//复制内容1替换到内容2里 0419为父级,..为爷爷级
//copy('test3.txt','../0419/maxim.txt') or die('复制失败');
//rename改名 二个参数在同一目录下
//rename('ceshi.txt','test.txt') or die('修改失败');//第一个为要改的原文件,第二个参数是修改后的名字
//rename() //移动文件,两个参数不在一个目录下
//rename('test3.txt','../0419/maxim.txt') or die('移动失败');
//创建目录
//mkdir('mulu2') or die('创建失败');
//移动到mulu的空文件夹
//rename('test.txt','mulu/test.txt') or die('移动失败');
//清除目录
//rmdir('mulu2') or die('删除文件失败');文件的操作比较语义化 :unlink:删除 2.rename:该文件名或移动 3.copy:复制 4. mkdir创建目录 5.rmdir:删除目录
<meta charset="UTF-8"/>
<!--
//文件上传必须是 POST方式method
//允许上传的类型必须是:multipart/form-data
//action可以是空,可以是当前文件名,但是最安全的是
-->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" id="" value="542488" />
<fieldset>
<legend align="center">文件上传</legend>
<p><strong>选择文件:</strong><input type="file" name="upload"/></p>
</fieldset>
<p align="center"><input type="submit" name="submit" value="上传"/></p>
</form>
<!--
$_FILES['file']['name']:原始文件名
$_FILES['file']['type']:文件类型
$_FILES['file']['size']:文件大小
$_FILES['file']['tmp_name']:临时文件夹
$_FILES['file']['error']:上传错误代码
-->
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){//检查是否用post提交的
if(isset($_FILES['upload']) ){
//设置允许上传文件的类型
$allow = ['image/jpg','image/jpep','image/png'];
//判断用户是否上传了正确的图片
if(in_array($_FILES['upload']['type'],$allow)){
//将文件添加到临时文件
if(move_uploaded_file($_FILES['upload']['tmp_name'],"upload/{$_FILES['upload']['name']}"))
{
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败')</script>";
}
}else{
echo '文件类型错误';
}
}
//对上传错误进行处理
if ($_FILES['upload']['error'] > 0 ) {
echo '<p>错误原因是:<strong>';
switch ($_FILES['upload']['error']) {
case 1:
echo '文件超过了php.ini配置中设置的大小';
break;
case 2:
echo '文件超过了表单中常量设置的大小';
break;
case 3:
echo '仅有部分文件被上传';
break;
case 4:
echo '没有文件被上传';
break;
case 6:
echo '没有可用的临时文件夹';
break;
case 7:
echo '磁盘已满,写入失败';
break;
case 8:
echo '上传意外中止';
break;
default:
echo '系统未知错误';
break;
}
echo '</strong></p>';
//保险起见,最好把创建的临时文件删除,当然系统也会在结束会话时自动清空
if (file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])) {
unlink($_FILES['upload']['tmp_name']);
}
}
}else{
echo '1';
}
?>上面为未ajax上传的代码
<meta charset="UTF-8"/>
<!--
//文件上传必须是 POST方式method
//允许上传的类型必须是:multipart/form-data
//action可以是空,可以是当前文件名,但是最安全的是
-->
<form method="POST" enctype="multipart/form-data">
<!--隐藏的input-->
<input type="hidden" name="MAX_FILE_SIZE" id="" value="542488" />
<fieldset>
<legend align="center">文件上传</legend>
<p><strong>选择文件:</strong><input type="file" name="upload"/></p>
</fieldset>
<p align="center"><input type="submit" name="submit" value="上传"/></p>
<span></span>
</form>
<script type="text/javascript" src="jquery-3.2.1.min.js" ></script>
<script>
//form提交链接上
window.onload = function(){
var frm = document.getElementsByTagName('form')[0];
frm.onsubmit = function(evt){
//收集文件
var frmevent = new FormData(frm);
//ajax开始做
var req = new XMLHttpRequest();
req.onreadystatechange = function(){
if(req.readyState == 4){
alert(req.responseText);//打印信息
$("span").text(req.responseText)
}
}
req.open('POST','file.php');//传输格式,要传的服务器
req.send(frmevent);//发送
evt.preventDefault();//阻止跳转
}
}
</script>点击 "运行实例" 按钮查看在线实例
<?php
//$_FILES['file']['name']:原始文件名
//$_FILES['file']['type']:文件类型
//$_FILES['file']['size']:文件大小
//$_FILES['file']['tmp_name']:临时文件夹
//$_FILES['file']['error']:上传错误代码
if($_SERVER['REQUEST_METHOD'] == 'POST'){//检查是否用post提交的
if(isset($_FILES['upload']) ){
//设置允许上传文件的类型
$allow = ['image/jpg','image/jpep','image/png'];
//判断用户是否上传了正确的图片
if(in_array($_FILES['upload']['type'],$allow)){
//将文件添加到临时文件
if(move_uploaded_file($_FILES['upload']['tmp_name'],"upload/{$_FILES['upload']['name']}"))
{
echo "上传成功";
}else{
echo "上传失败";
}
}else{
echo '文件类型错误';
}
}
//对上传错误进行处理
if ($_FILES['upload']['error'] > 0 ) {
echo '<p>错误原因是:<strong>';
switch ($_FILES['upload']['error']) {
case 1:
echo '文件超过了php.ini配置中设置的大小';
break;
case 2:
echo '文件超过了表单中常量设置的大小';
break;
case 3:
echo '仅有部分文件被上传';
break;
case 4:
echo '没有文件被上传';
break;
case 6:
echo '没有可用的临时文件夹';
break;
case 7:
echo '磁盘已满,写入失败';
break;
case 8:
echo '上传意外中止';
break;
default:
echo '系统未知错误';
break;
}
echo '</strong></p>';
//保险起见,最好把创建的临时文件删除,当然系统也会在结束会话时自动清空
if (file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])) {
unlink($_FILES['upload']['tmp_name']);
}
}
}else{
echo '1';
}
?>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号