PHP是后端语言,那么可以对服务器的文件可以进行很多的操作,当然需要有权限的情况下,cURL是php的一个功能,只要使用到网络资源,就可以优先考虑一下他
PHP文件系统概述
首先介绍一些方法
判断函数
glob //返回匹配模式的文件或目录名(以数组形式)
opendir //打开一个目录,返回目录资源
readdir //读取一个目录资源,如果读到结尾,返回false
closedir //关闭一个目录资源
file_exists //检查文件或目录是否存在
is_dir/is_file //判断给定文件名是否是一个目录/文件
is_readable/is_writable/is_executable //判断给定文件名是否可读/可写/可执行
is_link //判断给定文件名是否为一个符号连接
is_uploaded_file //判断文件是否是通过 HTTP POST 上传的
获取函数 , 有点多
stat // 给出文件的信息,关联数组 和 索引数组 都有
disk_free_space //返回目录中的可用空间
disk_total_space //返回一个目录的磁盘总大小
file // 把整个文件读入一个 关连数组 中,一行存入一次
file_get_contents //将整个文件读入一个字符串
fileatime / filectime / filemtime // 取得文件的 上次访问时间 / inode 修改时间 / 修改时间
fileinode // 取得文件的 inode 节点
fileowner // 取得文件的所有者
filegroup // 取得文件的组
fileperms // 取得文件的权限
filesize // 取得文件大小
filetype // 取得文件类型
realpath // 返回规范化的绝对路径名
basename // 返回路径中的文件名部分
dirname // 返回路径中的目录部分
更改函数/修改函数
chgrp/chmod/chown // 改变文件 所属的组 / 文件模式 / 文件的所有者 , 和linux下和相似
file_put_contents // 将一个字符串写入文件
rename // 重命名一个文件或目录
copy // 拷贝文件
move_uploaded_file // 将上传的文件移动到新位置
umask // 改变当前的 umask
unlink // 删除文件
rmdir // 删除目录
readfile // 输出文件
指针函数/锁
fopen/fclose // 打开文件或者 URL / 关闭一个已打开的文件指针
fread // 读取文件(可安全用于二进制文件)
fseek // 在文件指针中定位
fstat // 通过已打开的文件指针取得文件信息 , 与stat差不多
ftell // 返回文件指针读/写的位置 ,int型
fwrite // 写入文件(可安全用于二进制文件)
feof // 测试文件指针是否到了文件结束的位置 ,返回 boolean
fpassthru // 输出文件指针处的所有剩余数据
fgetc/fgets //从文件指针中 读取字符/读取一行
rewind // 倒回文件指针的位置
flock // 轻便的文件锁定/解锁 都是一这个函数
文件的权限在linux中是有清晰可见的,但在window系统中的并没有那么详细,所以某些函数最好是在linux下使用。在PHP下,获得一个文件的内容是很轻松的
// 这样就可以获得所有内容和与其行数, 一行就是一个数组
if(file_exists("123.txt")){
$arr = file("123.txt");
foreach ($arr as $line => $value) {
e."---->".$value."<br>";
} // => 输出 "0---->1231231 ....... 12---->afasfsdf"
}
POST 文件上传
必须在form 中 添加 enctype=”multipart/form-data” method=post 这两个属性
<input type=”hidden” name=”MAX_FILE_SIZE” value=”10000″> 可以在上传时设定文件大小,但并不是安全的
成功上传后,PHP会存在全局数组$_FILES里,打印$_FILES后,(只上传了一个图片)具体格式如下
Array
(
[ccc] => Array
(
[name] => 50658PIC2kb_1024.png
[type] => image/png
[tmp_name] =>/private/var/tmp/phpKyrId2
[error] => 0
[size] => 57522
)
)
type 就是这个上传文件的mime类型,size就是这个文件的大小,error就是错误码
UPLOAD_ERR_OK:其值为 0,没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE:其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE:其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL:其值为 3,文件只有部分被上传。
UPLOAD_ERR_NO_FILE:其值为 4,没有文件被上传。
UPLOAD_ERR_NO_TMP_DIR:其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
UPLOAD_ERR_CANT_WRITE:其值为 7,文件写入失败。PHP 5.1.0 引进。
$_FILES[‘ccc’][‘tmp_name ‘] 就是上传后的文件,其实他后缀已经改变了,我们可能通过方法将他拿出
move_uploaded_file(原有文件, 新文件) //返回一个boolean 值,提示上传成功与否
实现多个文件上传,只需要使每个input的name值不同就可以了,也可以使用数组
<input name=”file_a”><input name=”file_b”>
<input name=”file[]”><input name=”file[]”>
以下内容可以抓取一个网站的内容Client URL 能够连接通讯各种服务器、使用各种协议。支持的协议有 http、http、ftp、gopher、telnet、dict、file、ldap。 同时支持 http 证书、HTTP POST、HTTP PUT、 FTP 上传(也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies、用户名+密码的认证。
// 创建一个新cURL资源
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
//CURLOPT_RETURNTRANSFER 设置为true时,将以字符串返回,而不是直接输出。
//curl_setopt 有非常多的参数 http://php.net/manual/zh/function.curl-setopt.php 这里列举了全部参数
// 抓取URL并把它传递给浏览器
curl_exec($ch);
//关闭cURL资源,并且释放系统资源
curl_close($ch);
发表评论
沙发空缺中,还不快抢~