php学习整理

php语法记录

//  表示单行注释

#    #号也表示单行注释,用的比较少

/*

多行注释 这里是注释区域代码

*/

static $a = 0;定义静态变量

echo 输出 多个变量 连接用点 .

gettype(传入一个变量) 能够获得变量的类型

var_dump(传入一个变量) 输出变类型和值

unset() 销毁变量

$  定义变量

""  双引号解析变量\t \n等;比如 $a='123'; echo  "{$a}123";结果 123123

''  单引号不解析变量。

is_int 是否为整型

is_bool 是否为布尔

is_float 是否是浮点

is_string 是否是字符串

is_array 是否是数组

is_object 是否是对象

is_null 是否为空

is_resource 是否为资源

is_scalar 是否为标量

is_numeric 是否为数值类型

is_callable 是否为函数

数据类型之自动转换和强制转换

intval()  转int

floatval() 转float

strval() 转strig

settype(变量,'null'); 等价于 unset()一个变量 比如:settype($t,'int');

定义常量

define(常量名,常量值);比如:define('MY_NAME','PHP中文网');

defined()主是是为了防止其他人绕过安全检查文件。

函数:defined(常量)

功能:向函数的括号后面传入常量,如果常量定义了就返回true,否则返回false

可变变量

$$变量名称有几个就写几个比如(相当于你要改变变量的层次级别)

$shu = 'biao';

$biao = 'wo';

$wo = 'test';

$test = 'sina';

$sina = 'zhongguo';

$zhongguo = 'china';

$china = '我爱你';

echo $$$$$shu;

结果:zhongguo

外部变量

比如:

<form action="reg.php" method="post">

          <input type="text" name="username" />

          <input type="password" name="pwd" />

          <input type="submit" value="提交" />

</form> 

$_POST['username'];//获取前台username的值

$_COOKIE 得到会话控制中cookie传值

$_SESSION 得到会话控制中session的值

$_FILES 得到文件上传的结果

$_GET 得到get传值的结果

$_POST 得到post传值的结果

$_REQUEST 即能得到get的传值结果,也能得到Post传值的结果

$GLOBALS['变量名'] 获取外部变量

把变量变为了全局变量

global //在global后面可以跟一个或者多个变量,变量用逗号分开。

环境变量

$_SERVER["REQUEST_METHOD"] 请求当前PHP页面的方法

$_SERVER["REQUEST_URI"] 请求的URI

$_SERVER["SERVER_SOFTWARE"] 用的是哪一种服务器

$_SERVER["REMOTE_ADDR"] 客户的IP地址

$_SERVER["SERVER_ADDR"] 当前服务器的IP地址

$_SERVER["SCRIPT_FILENAME"] 主前请求文件的路径

$_SERVER["HTTP_USER_AGENT"] 当前访问这个网址的电脑和浏览器的情况

$_SERVER["HTTP_REFERER"] 上级来源(用户从哪个地址进入当前网页的)

$_SERVER["REQUEST_TIME"] 当前的时间

引用变量

加上&(and 符后),把变量指向同一个存值空间了

基础语法之算术运算

符号 说明 举例

+ 加号 $x + $y

- 减号 $x - $y

* 乘号,乘以 $x * $y

/ 除号,除以 $x / $y

% 取余也叫取模、求模 $x % $y

赋值

符号 举例 等价式

+= $x += $y $x = $x + $y

-= $x -= $y $x = $x - $y

*= $x *= $y $x = $x * $y

/= $x /= $y $x = $x / $y

%= $x %= $y $x = $x % $y

.= $x .= $y $x = $x . $y

基础语法之自加自减

符号 说明

$x++ 先赋值后加

$x-- 先赋值后减

++$x 先加后赋值

--$x 先减后赋值

基础语法之比较运算符

说明 符号

大于 >

小于 <

大于等于 >=

小于等于 <=

不等于 !=

等于 ==(赋值是=号,所以==规定为等于)

全等(判断类型等于) ===

全不等(判断类型不等于) !==

基础语法之逻辑运算

举例 说明 详细说明

$x and $y 逻辑与(并且关系) $x 和$y 为真则返回真

$x && $y 同上 同上

$x or $y 逻辑或 $x,$y均为false时为假,其他情况全为真

$a||$b 同上 同上

!$x 逻辑非 取反,即true变为false,false变为true

$x xor $y 逻辑异或 相同取false,相异为true

基础语法之 位运算

举例       说明 详细说明

$a & $b    And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。

$a | $b       Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。

$a ^ $b       Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。

~ $a       Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。

$a << $b   左移 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。

$a >> $b 右移 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

基础语法之 三元运算符和其它运算符

符号 说明

$x?    真代码段:假代码段 判断是否为真假 ? 真情况 : 假情况;

``    (反引号) 反引号中间插代命令,执行系统命令,等价于shell_exec函数

@     单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用

=>     数组下标访问符

->     对象访问符

instanceof  判断某个对象是否来自某个类,如果是的返回true,如果不是返回false

exit 的意思是指在此处停止运行,退出。后面的PHP代码不再执行了。它有两种用法:

1,直接exit; 就是直接退出

2,exit(‘提示内容’),退出的时候还给出一段提示内容

goto 操作符可以用来跳转到程序中的另一位置

文件包含

函数       包含失败     特点

Inlcude       返回一条警告 文件继续向下执行。通常用于动态包含

Require       一个致命的错 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行

Include_once  返回一条警告 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含

Require_once  一个致命的错 除了原的功能一外,会做一次once检测,防止文件反复被包含

数学常用函数

函数名 描述 实例 输入 输出

abs() 求绝对值 $abs = abs(-4.2); //4.2 数字 绝对值数字

ceil() 进一法取整 echo ceil(9.999); // 10 浮点数 进一取整

floor() 舍去法取整 echo floor(9.999); // 9 浮点数 直接舍去小数部分

fmod() 浮点数取余 "$x = 5.7;$y = 1.3;$r = fmod($x, $y);// $r equals 0.5, because 4 *  1.3 + 0.5 = 5.7    " 两个浮点数,x>y 浮点余数

pow() 返回数的n次方 echo pow(-1, 20); // 1 基础数 n次方 乘方值

round() 浮点数四舍五入 echo round(1.95583, 2);// 1.96 一个数值 保留小数点后多少位,默认为0 舍入后的结果

sqrt() 求平方根 echo sqrt(9); //3 被开方的数 平方根

max() 求最大值 "echo max(1, 3, 5, 6, 7);  // 7 echo max(array(2, 4, 5)); // 5" 多个数字或数组 返回其中的最大值

min() 求最小值 min 多个数字或数组 返回其中的最小值

mt_rand() 更好的随机数 echo mt_rand(0,9);//n 最小/最大,随机数 随机返回范围内的值

rand() 随机数 echo rand() 最小/最大,随机数 随机返回范围内的值

pi() 获取圆周率值 echo pi(); // 3.1415926535898 无 获取圆周率

1). date_default_timezone_get()

2).date_default_timezone_set()

比如://定义一下时区常量,以后你可以放到配置文件里

define('TIME_ZONE','Asia/shanghai');

//执行函数

date_default_timezone_set(TIME_ZONE);

echo date('Y-m-d H:i:s');

checkdate可以判断一个输出的日期是否有效。

bool checkdate ( int $month , int $day , int $year )

date函数的格式参数表

字符 说明 返回值

d 月份中的第几天,有前导零的2 位数字 01 到31

D 英文星期几,3个字母 Mon到Sun

j 月份中的第几天,没有前导零 1 到31

l(字母) 英文星期几 Sunday到 Saturday

N 1格式数字表示的星期 1(表示星期一)到7(表示星期天)

S 每月天数后面的英文后缀,2个字符 st,nd,rd或者th。可以和jg一起用

w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)

z 一年中的第几天 0到366

W 年份中的第几周,每周从星期一开始 42(当年的第42周)

F 月份,完整的文本格式 January 到 December

m 数字表示月份,有前导零 01 到 12

M 3个字母缩写表示的月份 Jan 到Dec

n 数字表示月份,没有前导零 1 到 12

t 给定月份所应有的天数 28 到 31

L 是否为闰年 如果是闰年为1,否则为o

o 格式年份数字 例如2007

Y 4 位数字完整表示年份 例如1999或2008

y 2 位数字表示的年份 例如99或08

a 小写的上午和下午值 am或pm

A 大写的上午和下午值 AM或PM

g 小时,12小时格式,没有前导零 1到12

G 小时,24小时格式,没有前导零 0 到 23

i 有前导零的分钟数 00 到 59

s 秒数,有前导零 00到59

e 时区标识

U 从Unix纪元开始至今的秒数 长整型数字

getdate获取当前系统时间

键名 说明 返回值

secnods 秒 数字0到 59

minutes 分钟 数字0到59

hours 小时 数字 0到 23

mday 月份中第几天 数字 1到 31

wday 星期中第几天 数字0(表示星期天)到6(表示星期六)

mon 月份 数字 1 到 12

year 年 4 位数字表示的完整年份

yday 一年中第几天 数字0到365

weekday 星期几的英文 Sunday到 Saturday

month 月份的英文 January 到 December

0 自从Unix纪元开始的秒数 长整型数字

PHP常用函数:

函数名 描述 实例

trim() 删除字符串两端的空格或其他预定义字符 "$str = "\r\nHello World!\r\n"; echo trim($str);

rtrim() 删除字符串右边的空格或其他预定义字符 "$str = "Hello World!\n\n"; echo rtrim($str);"

chop() rtrim()的别名 同上

ltrim() 删除字符串左边的空格或其他预定义字符 "$str = "\r\nHello World!"; echo ltrim($str);"

dirname() 回路径中的目录部分(我们把它归在了字符串函数里了) echo dirname("c:/testweb/home.php");

str_pad() 把字符串填充为指定的长度 $str = "Hello World"; echo str_pad($str,20,".");

str_repeat() 重复使用指定字符串 echo str_repeat(".",13);

str_split() 把字符串分割到数组中 print_r(str_split("Hello"));

strrev() 反转字符串 echo strrev("Hello World!");

wordwrap() 按照指定长度对字符串进行折行处理 "$str = ""An example on a long word is: Supercalifragulistic""; echo wordwrap($str,15);"

str_shuffle() 随机地打乱字符串中所有字符 echo str_shuffle("Hello World");

parse_str() 将字符串解析成变量 "parse_str("id=23&name=John%20Adams",$myArray); print_r($myArray);"

number_format() 通过千位分组来格式化数字 "echo number_format("1000000"); echo number_format("1000000",2); echo number_format("1000000",2,"","",""."");"

strtolower() 字符串转为小写 echo strtolower("Hello WORLD!");

strtoupper() 字符串转为大写 echo strtoupper("Hello WORLD!");

ucfirst() 字符串首字母大写 echo ucfirst("hello world");

ucwords() 字符串每个单词首字符转为大写 echo ucwords("hello world");

htmlentities() 把字符转为HTML实体 $str = ""John & 'Adams'""; echo htmlentities($str, ENT_COMPAT);

htmlspecialchars() 预定义字符转html编码

nl2br() \n转义为

标签 echo nl2br("One line.\nAnother line.");

strip_tags() 剥去 HTML、XML 以及 PHP 的标签 echo strip_tags("Hello world!");

addcslashes() 在指定的字符前添加反斜线转义字符串中字符 $str = ""Hello, my name is John Adams." echo $str; echo addcslashes($str,'m');"

stripcslashes() 删除由addcslashes()添加的反斜线 echo stripcslashes("Hello, \my na\me is Kai Ji\m.");

addslashes() 指定预定义字符前添加反斜线 $str = "Who's John Adams?";echo addslashes($str);

stripslashes() 删除由addslashes()添加的转义字符 echo stripslashes("Who\'s John Adams?");

quotemeta() 在字符串中某些预定义的字符前添加反斜线 $str = "Hello world. (can you hear me?)"; echo quotemeta($str);

chr() 从指定的 ASCII 值返回字符 echo chr(052);

ord() 返回字符串第一个字符的 ASCII值 echo ord("hello");

strcasecmp() 不区分大小写比较两字符串 echo strcasecmp("Hello world!","HELLO WORLD!");

strcmp() 区分大小写比较两字符串

strncmp() 比较字符串前n个字符,区分大小写

strncasecmp() 比较字符串前n个字符,不区分大小写 int strncasecmp ( string $str1 , string $str2 , int $len )

strnatcmp() 自然顺序法比较字符串长度,区分大小写 int strnatcmp ( string $str1 , string $str2 )

strnatcasecmp() 自然顺序法比较字符串长度,不区分大小写 int strnatcasecmp ( string $str1 , string $str2 )

chunk_split() 将字符串分成小块 str chunk_split(str $body[,int $len[,str $end]])

strtok() 切开字符串 str strtok(str $str,str $token)

explode() 使用一个字符串为标志分割另一个字符串 array explode(str $sep,str $str[,int $limit])

implode() 同join,将数组值用预订字符连接成字符串 string implode ( string $glue , array $pieces )

substr() 截取字符串 string substr ( string $string , int $start [, int $length ] )

str_replace() 字符串替换操作,区分大小写 mix str_replace(mix $search,,mix $replace,mix $subject[,int &$num])

str_ireplace() 字符串替换操作,不区分大小写 mix str_ireplace ( mix $search , mix $replace , mix $subject [, int &$count ] )

substr_count() 统计一个字符串,在另一个字符串中出现次数 int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )

substr_replace() 替换字符串中某串为另一个字符串 mixed substr_replace ( mixed $string , string $replacement , int $start [, int $length ] )

similar_text() 返回两字符串相同字符的数量 int similar_text(str $str1,str $str2)

strchr() 返回一个字符串在另一个字符串中开始位置到结束的字符串 string strstr ( string $str, string $needle , bool $before_needle )

strrchr() 返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串 string strrchr ( string $haystack , mixed $needle )

stristr() 返回一个字符串在另一个字符串中开始位置到结束的字符串,不区分大小写 string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

strtr() 转换字符串中的某些字符 string strtr ( string $str , string $from , string $to )

strpos() 寻找字符串中某字符最先出现的位置 int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

stripos() 寻找字符串中某字符最先出现的位置,不区分大小写 int stripos ( string $haystack , string $needle [, int $offset ] )

strrpos() 寻找某字符串中某字符最后出现的位置 int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

strripos() 寻找某字符串中某字符最后出现的位置,不区分大小写 int strripos ( string $haystack , string $needle [, int $offset ] )

strspn() 返回字符串中首次符合mask的子字符串长度 int strspn ( string $str1 , string $str2 [, int $start [, int $length ]] )

strcspn() 返回字符串中不符合mask的字符串的长度 int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] )

str_word_count() 统计字符串含有的单词数 mix str_word_count(str $str,[])

strlen() 统计字符串长度 int strlen(str $str)

count_chars() 统计字符串中所有字母出现次数(0..255) mixed count_chars ( string $string [, int $mode ] )

md5() 字符串md5编码 $str = "Hello"; echo md5($str)

iconv

mb_substr 获取字符串的部分 string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

mb_http_output 设置/获取 HTTP 输出字符编码 mixed mb_http_output ([ string $encoding = mb_http_output() ] )

mb_strlen 获取字符串的长度 mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )

iconv 字符串按要求的字符编码来转换 string iconv ( string $in_charset , string $out_charset , string $str )

iconv_substr 截取字符串的部分

iconv_get_encoding 获取 iconv 扩展的内部配置变量

mb_substr_count 统计字符串出现的次数

mb_check_encoding 检查字符串在指定的编码里是否有效

mb_strrpos 查找字符串在一个字符串中最后出现的位置

mb_split 使用正则表达式分割多字节字符串

parse_url 解释URL成为一个数组

注:mb_* 和iconv_* 他们可以处理多字节字符,例如:中文。

php 常用操作数组函数

函数 功能

array_shift 弹出数组中的第一个元素

array_unshift 在数组的开始处压入元素

array_push 向数组的末尾处压入元素

array_pop 弹出数组末尾的最后一个元素

current 读出指针当前位置的值

key 读出指针当前位置的键

next 指针向下移

prev 向上移

reset 指针到开始处

end 指针到结束处

php 数组的常用函数

函数名 功能

array_combine() 生成一个数组,用一个数组的值作为键名,另一个数组值作为值

range() 创建并返回一个包含指定范围的元素的数组。

compact() 创建一个由参数所带变量组成的数组

array_fill() 用给定的值生成数组

array_chunk() 把一个数组分割为新的数组块

array_merge() 把两个或多个数组合并为一个数组

array_slice() 在数组中根据条件取出一段值,并返回

array_diff() 返回两个数组的差集数组

array_search() 在数组中搜索给定的值,如果成功则返回相应的键名

array_splice() 把数组中的一部分去掉并用其它值取代

array_sum() 计算数组中所有值的和

in_array() 检查数组中是否存在某个值

array_key_exists() 检查给定的键名或索引是否存在于数组中

shuffle() 将数组打乱,保留键值

count() 计算数组中的单元数目或对象中的属性个数

array_flip() 返回一个键值反转后的数组

array_keys() 返回数组所有的键,组成一个数组

array_values() 返回数组中所有值,组成一个数组

array_reverse() 返回一个元素顺序相反的数组

array_count_values() 统计数组中所有的值出现的次数

array_rand() 从数组中随机抽取一个或多个元素,注意是键名

array_unique() 删除重复值,返回剩余数组

sort() 按升序对给定数组的值排序,不保留键名

rsort() 对数组逆向排序,不保留键名

asort() 对数组排序,保持索引关系

arsort() 对数组逆向排序,保持索引关系

ksort() 按键名对数组排序

krsort() 将数组按照键逆向排序

natsort() 用自然顺序算法对数组中的元素排序

natcasesort() 自然排序,不区分大小写

array_filter() 去掉数组中的空元素或者预定元素

extract 将键变为变量名,将值变为变量值

php正则表达示的定界符

例子         说明

/中间写正则/ 正确

$中间写正则$ 正确

%中间写正则% 正确

^中间写正则^ 正确

@中间写正则@ 正确

(中间写正则) 错误

A中间写正则A 错误

php正则表示中的元字符

元字符 功能说明

* 是代表匹配前面的一个原子,匹配0次或者任意多次前面的字符。

+ 匹配一次或多前前面的一个字符

? 前面的字符可有可无【可选】 有或没有

. 更标准一些应该把点算作原子。匹配除了\n以外的所有字符

document/2015-09-04/55e92c421434d 或者。注:它的优先级最低了。

^ 必须要以抑扬符之后的字符串开始

$ 必须要以$之前的字符结尾

\b 词边界

\B 非边界

{m} 有且只能出现m次

{n,m} 可以出现n到m次

{m,} 至少m次,最大次数不限制

() 改变优先级或者将某个字符串视为一个整体,匹配到的数据取出来也可以使用它

php 正则达达示中的模式修正符

模式匹配符 功能

i 模式中的字符将同时匹配大小写字母.

m 字符串视为多行

s 将字符串视为单行,换行符作为普通字符.

x 将模式中的空白忽略.

A 强制仅从目标字符串的开头开始匹配.

D 模式中的美元元字符仅匹配目标字符串的结尾.

U 匹配最近的字符串.

常用正则函数

函数名 功能

preg_filter 执行一个正则表达式搜索和替换

preg_grep 返回匹配模式的数组条目

preg_match 执行一个正则表达式匹配

preg_match_all 执行一个全局正则表达式匹配

preg_replace_callback_array 传入数组,执行一个正则表达式搜索和替换使用回调

preg_replace_callback 执行一个正则表达式搜索并且使用一个回调进行替换

preg_replace 执行一个正则表达式的搜索和替换

preg_split 通过一个正则表达式分隔字符串

php 读取文件

readfile读取文件

int readfile ( string $文件名)

readfile("/home/paul/test.txt");

//windows类的读取方式

readfile("c:\\boot.ini");

file_get_contents打开文件

string file_get_contents (string filename)

fopen函数 fopen函数的功能是打开文件,参数主要有两个:

1.文件打开的路径

2.打开文件的模式

返回类型是一个资源类型,我们第一次遇到了之前基础类型的时候讲到的资源类型。

资源类型需要其他的函数来操作这个资源。所有的资源有打开就要有关闭。

fread函数 函数的功能的功能是读取打开的文件资源。读取指定长度的文件资源,读取一部份向后移动一部份。至到文件结尾。

fclose函数 fclose函数的功能是关闭资源。资源有打开就有关闭。

了解完函数,后两个函数比较简单。而fopen函数的模式到底是什么,fopen的模式有下面几个,我们来讲一下fopen的模式:

模式 说明

r 只读方式打开,将文件指针指向文件头。

r+ 读写方式打开,将文件指针指向文件头。

w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建

w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建

a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建

a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之

x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建

x+

创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建

file_put_contents写入文件

int file_put_contents ( string $文件路径, string $写入数据])

fwrite配合fopen进行写入操作

int fwrite ( resource $文件资源变量, string $写入的字符串 [, int 长度])

模式 说明

r 只能读不能使用fwrite写

r+ 可操作读、写

w 只可以写功能

w+ 即可读又可以写

a模式和w模式的不同

模式 总结

x 每次写入会干掉原有文件的内容,文件不存在都会创建

a 每次写入都会向文件的尾端追加内容

创建临时文件

resource tmpfile ( )

php移动、拷贝和删除文件

重命名文件

bool rename($旧名,$新名);

复制文件

bool copy(源文件,目标文件)

删除文件

bool unlink(指定路径的文件)

php检测文件属性函数

bool file_exists ( $指定文件名或者文件路径)

功能:文件是否存在。

bool is_readable ( $指定文件名或者文件路径)

功能:文件是否可读

bool is_writeable ( $指定文件名或者文件路径)

功能:文件是否可写

bool is_executable ( $指定文件名或者文件路径)

功能:文件是否可执行

bool is_file ( $指定文件名或者文件路径)

功能:是否是文件

bool is_dir ( $指定文件名或者文件路径)

功能:是否是目录

void clearstatcache ( void )

功能:清楚文件的状态缓存

php 文件常用函数和常量

函数名 功能

filesize 检测文件的大小

file 把整个文件读入一个数组中

fgets 从文件指针中读取一行,读到最后返回false

fgetc 从文件指针中读取一个字符,读到最后返回false

ftruncate 将文件截断到给定的长度

文件的时间函数

函数 功能说明

filectime 文件创建时间

filemtime 文件修改时间

fileatime 文件上次访问时间

php 文件锁处机制

bool flock ( resource $handle , int $operation)

锁类型 说明

LOCK_SH 取得共享锁定(读取的程序)

LOCK_EX 取得独占锁定(写入的程序

LOCK_UN 释放锁定(无论共享或独占)

php 目录处理函数

函数名 功能

opendir 打开文件夹,返回操作资源

readdir 读取文件夹资源

is_dir 判断是否是文件夹

closedir 关闭文件夹操作资源

filetype 显示是文件夹还是文件,文件显示file,文件夹显示dir

php 文件权限设置

函数 功能说明

chmod 修改读取模式

chgrp 修改用户组

chown 修改权限

chmod("/var/wwwroot/index.html", 755);

chmod("/var/wwwroot/index.html", "u+rwx,go+rx");

chmod("/somedir/somefile", 0755);

php文件路径函数

函数名 功能

pathinfo 返回文件的各个组成部份

basename 返回文件名

dirname 文件目录部份

parse_url 网址拆解成各部份

http_build_query 生成url 中的query字符串

http_build_url 生成一个url

php文件上传

判断是否有错误码

错误码 说明

0 无误,可以继续进行文件上传的后续操作。

1 超出上传文件的最大限制,upload_max_filesize = 2M php.ini中设置,一般默认为2M。可根据项目中的实际需要来修改

2 超出了指定的文件大小,根据项目的业务需求指定上传文件的大小限制

3 只有部分文件被上传

4 文件没有被上传

6 找不到临时文件夹,可能目录不存在或没权限

7 文件写入失败,可能磁盘满了或没有权限

php文件上传进度处理

配置项 说明

session.upload_progress.enabled 是否启用上传进度报告(默认开启) 1为开启,0为关闭

session.upload_progress.cleanup 是否在上传完成后及时删除进度数据(默认开启, 推荐开启)

session.upload_progress.prefix[=upload_progress_] 进度数据将存储在_SESSION[session.upload_progress.prefix . _POST[session.upload_progress.name]]

session.upload_progress.name[=PHP_SESSION_UPLOAD_PROGRESS] 如果_POST[session.upload_progress.name]没有被设置, 则不会报告进度.

session.upload_progress.freq[=1%] 更新进度的频率(已经处理的字节数), 也支持百分比表示’%’.

session.upload_progress.min_freq[=1.0] 更新进度的时间间隔(秒级)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343