header('content-type:text/html;charset=utf-8');
move_uploaded_file(file,newloc) :若成功则返回true 否则false。
copy(file,newloc) : 若成功则返回true ,否则false。
strtolower(string) :把字符串转换为小写。
end(array) : 返回数组最后一个元素。 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)。
explode("分隔符","字符串") 把字符串分隔为数组。
pathinfo(path,options) :以数组的形式返回路径信息。options可能的值:
可能的值:
- PATHINFO_DIRNAME - 只返回 dirname
- PATHINFO_BASENAME - 只返回 basename
- PATHINFO_EXTENSION - 只返回 extension
in_array(value,array) :在数组中搜索给定的值。
is_uploaded_file(file) 函数判断指定的文件是否是通过 HTTP POST 上传的。 如果是则返回true.
microtime() 函数返回当前 Unix 时间戳和微秒数。
uniqid(prefix,more_entropy) 函数基于以微秒计的当前时间,生成一个唯一的 ID。
如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy 参数设置为 true,则是 23 个字符串长。
如果 more_entropy 参数设置为 true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。
md5(string,raw) 计算字符串的 MD5 散列。
raw可选。规定十六进制或二进制输出格式:
- TRUE - 原始 16 字符二进制格式
- FALSE - 默认。32 字符十六进制数
确保文件名唯一,防止同名文件覆盖:$name=md5(uniqid(microtime(true),true));
file_exists() 函数检查文件或目录是否存在。如果指定的文件或目录存在则返回 true,否则返回 false。
+++++++拓展开始+++++++++
PHP的 file_exists = is_dir + is_file 它既可以判断文件是否存在,又可以判断目录是否存在。
is_file 只判断文件是否存在;
file_exists 判断文件是否存在或者是目录是否存在;
is_dir 判断目录是否存在;
查看手册,虽然这两个函数的结果都会被缓存,但是is_file却快了N倍。
还有一个值得注意的:
文件存在的情况下,is_file比file_exists要快N倍;
文件不存在的情况下,is_file比file_exists要慢;
结论是,file_exits函数并不会因为该文件是否真的存在而影响速度,但是is_file影响就大了。
+++++++++拓展结束++++++++++++
mkdir(path,mode,recursive,context) 函数创建目录。若成功,则返回 true,否则返回 false。
参数 | 描述 |
---|---|
path | 必需。规定要创建的目录的名称。 |
mode | 必需。规定权限。默认是 0777。 |
recursive | 必需。规定是否设置递归模式。 |
context | 必需。规定文件句柄的环境。Context 是可修改流的行为的一套选项。 |
chmod() 函数改变文件模式。如果成功则返回 TRUE,否则返回 FALSE。chmod(file,mode)
参数 | 描述 |
---|---|
file | 必需。规定要检查的文件。 |
mode |
可选。规定新的权限。 mode 参数由 4 个数字组成:
可能的值(如需设置多个权限,请对下面的数字进行总计):
|
文件上传:
tmp是临时文件
临时文件一般是以隐藏的形式出现,当文件完成时,自动消失。
服务器端配置:
File_uploads=On 支持HTTP上传。
Upload_tmp_dir 临时文件保存目录。
upload_max_filesize=2M 允许上传文件的最大值
max_file_uploads=20 允许一次上传文件的最大数。
Post_max_size=8M post方式发送数据的最大值。
Max_execution_time=-1 设置了脚本被解析器终止之前允许的最大执行时间
单位为妙,防止程序员写的不好而占尽服务器资源。
Max_input_time=60 脚本解析输入数据允许的最大时间,单位秒。
Max_input_nesting_level=64 设置输入变量的嵌套深度。
Memory_limit=128M 最大单线程的独立内存使用量。也就是一个Web请求,给予线程最大的内存使用量的定义。
错误信息说明:
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,找不到临时文件夹。
UPLOAD_ERR_CANT_WRITE:值位7,文件写入失败。
UPLOAD_ERR_EXTENSION:值为8,上传的文件被PHP扩展程序中断。
PHP 编码设置:
header("Content-type: text/html; charset=utf-8");
Html编码设置:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
解决中文名字上传后乱码问题:
$name = iconv('utf-8','gb2312',$file['name']); //利用Iconv函数对文件名进行重新编码
该函数将$file[‘name’]字符串串由gb2312转换成utf-8的编码。
未完 待续…………