php课程 9-33 php文件操作里面的注意事项有哪些
一、总结
一句话总结:文件操作其实很简单,就是几个文件操作函数需要记一下。
1、文件函数如何使用(如何找php文件函数的资料)?
查看参考手册,如果在线手册不好找位置,下个本地版的chm或许不错
2、php中可以实现文件删除、复制、重命名这些操作么?
可以
3、open中的w和a与r打开一个不存在文件的不同是什么?
w和a,如果文件不存在,就创建文件
r的话,文件不存在,也不创建,直接报错
4、什么时候使用rewind()函数?
在a+方式的时候,写了文件需要读的时候,用rewind(),把光标弄到开头去
'a+':读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
5、图片可以用字节方式存入数据库么,存了之后怎么取(图片的本质是二进制代码)?
fopen+fread即可
加文件头header('content-type:image/jpeg')
这里的fread不区分文件类型,所以特别好用
2 header('content-type:image/jpeg');
3
4 $file='logo2.jpg';
5
6 $fr=fopen($file,'r');
7 echo fread($fr,filesize($file));
8 fclose($fr);
6、php读取文件内容最好用什么函数?
file_get_contents() 可文件,可网络
file_put_contents()还支持追加
4 $url='http://www.baidu.com';
5
6 $str=file_get_contents($url);
7
8 file_put_contents('baidu.html',$str);
7、页面缓存怎么实现?
就用file_get_contents(),然后就可以读取自己网页的内容,存下来,就是静态文件了,然后让用户访问的时候,直接访问这个静态文件就好,反正内容和动态网页里面是一样的,估计很多缓存都是这么实现的
这样的话打开的特别快
4 $url='http://www.baidu.com';
5
6 $str=file_get_contents($url);
7
8 file_put_contents('baidu.html',$str);
8、如何让别人优先访问的是静态html,而不是动态的php呢?
在apache的配置里面把index.html放在index.php前面就好
9、php正则匹配的时候为什么加()圆括号分组?
因为我们分组了的话有些函数会给我们把分组里面的内容匹配出来,这样就少了我们的一道操作,比如perg_match()
9 preg_match('/<title>(.+)</title>/s',$str2,$ms);
10、php中如何让点可以匹配换行?
模式修饰符s,或者说把里面的内容视为独立的行
9 preg_match('/<title>(.+)</title>/s',$str2,$ms);
11、如何把获取的字符串里面的内容改成utf-8?
用iconv方法
7 $str2=iconv('gb2312','utf-8',$str);
二、php文件操作里面的注意事项有哪些
1、相关知识
文件处理函数:
1.文件操作
2.目录操作
3.文件上传
4.文件下载
常用文件类型函数:
• filetype();
• is_dir();
• is_file();
• file_exists();
• filesize();
文件操作:
1.文件删除
unlink();
2.文件复制
copy();
3.重命名文件名
rename();
4.打开文件
fopen();
5.关闭文件
fclose();
6.读取文件内容
fread()
readfile(); #不需要资源
file_get_contents(); #不需要资源
7.写入文件
fwrite();
file_put_contents(); #不需要资源
1.文件操作
2.目录操作
3.文件上传
4.文件下载
常用文件类型函数:
• filetype();
• is_dir();
• is_file();
• file_exists();
• filesize();
文件操作:
1.文件删除
unlink();
2.文件复制
copy();
3.重命名文件名
rename();
4.打开文件
fopen();
5.关闭文件
fclose();
6.读取文件内容
fread()
readfile(); #不需要资源
file_get_contents(); #不需要资源
7.写入文件
fwrite();
file_put_contents(); #不需要资源
2、代码
页面静态化
1 <?php 2 // 3 4 $url='http://www.baidu.com'; 5 6 $str=file_get_contents($url); 7 8 file_put_contents('baidu.html',$str); 9 ?>
写入并读出
1 <?php 2 $file='test.txt'; 3 4 $fr=fopen($file,'a'); 5 fwrite($fr,'abc<br>abc<br>'); 6 fclose($fr); 7 8 $fr=fopen($file,'r'); 9 echo fread($fr,filesize($file)); 10 fclose($fr); 11 ?>
1 <?php 2 $file='test.txt'; 3 4 $fr=fopen($file,'a+'); 5 fwrite($fr,'abc<br>abc<br>'); 6 rewind($fr); 7 8 echo fread($fr,filesize($file)); 9 fclose($fr); 10 ?>
读取图片内容
1 <?php 2 header('content-type:image/jpeg'); 3 4 $file='logo2.jpg'; 5 6 $fr=fopen($file,'r'); 7 echo fread($fr,filesize($file)); 8 fclose($fr); 9 ?>
网页标题采集
1 <?php 2 //标题采集器 3 4 $url='http://www.163.com'; 5 6 $str=file_get_contents($url); 7 $str2=iconv('gb2312','utf-8',$str); 8 9 preg_match('/<title>(.+)</title>/s',$str2,$ms); 10 echo "网站标题: {$ms[1]}"; 11 ?>