$_SERVER['SERVER_ADDR'] 服务器IP地址
$_SERVER['QUERY_STRING'] ?后面的一大串
$_SERVER['REMOTE_ADDR']客户端IP地址
$_SERVER['HTTP_REFFRER']上级请求的页面,如果通过网址通过访问,为空
$_SERVER['PATH_INFO']中间的use/reg
错误运算符@:
php支持一个错误运算符@。当将其放在一个PHP表达式之前,该表达式可能产生的任何错误信息
都被忽略掉
运算符优先级:
1.递增递减运算符不影响布尔值 2.递减NULL没有效果,递增NULL值为1 3.递增和递减在前就先运算
符后返回,反之就先返回,后运算
var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。
FLASE的七种情况:都是等值的
print()只能打印一个 echo能打印多个,逗号隔开
var_dump()能打印类型 pirnt_r()能打印格式化好的数据
var_export()能打印格式化好的数据第二个参数true能返回,符合php语法,var_dump()不行
php数组随机函数:
array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。
";
echo $a[$random_keys[1]]."
";
echo $a[$random_keys[2]];
?>
运行实例
数组处理函数
array_diff()数组X集 array_intersect()交集 array_merge()数组合并
IP处理函数
long2ip用于将一个数字格式的IPv4地址转换成字符串格式(192.168.0.1)
ip2long()相反
序列化函数
序列化serialize():就是将一个变量所代表的 “内存数据”转换为“字符串”的形式,并持久保存在硬盘(写入文件中保存)上的一种做法,即,把“内存数据”转换为“字符串”然后保存到文件中;
反序列化unserialize():就是将序列化之后保存在硬盘(文件)上的“字符串数据”恢复为其原来的内存形式的变量数据的一种做法,即,把文件中保存的序列化后的“字符串数据”恢复为“内存数据”;
osi七层模型:
1.物理层 2.数据俩链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应用层
第一层:物理层
为设备之间的信息传输提供可靠环境,那么这个环境是什么呢?
就是如:同轴电缆,插头,接收器,水晶头,网线等。可以在通信的两个数据终端的设备之间连接起来形成一条通路。
再说下这个协议中的某一项规定:比如eiars-232-c及rs-449就可以兼容于100序列线上。
第二层:数据链路层
提供数据的传送服务。这里涉及到一个信息就是帧,它是数据传输的单元,不同的协议帧的长短也不同。它还有差错恢复,流量控制的功能(这个指的是硬件)
ISO1745--1975 、ISO7776 、ISO3309--1984 就是这一层的三种不同协议,而每一个协议帧的长短也是不同的。
我们常见的链路层产品就是网卡,网桥等。
第三层:网络层
它的作用是路由的选择,网络的激活和终止。它还有的一个重要功能就是在一条数据链路上复用多条网络连接,大多采用的是分时复用的技术。
我们常见的是路由器、网关等
第四层:传输层
它是两台计算机经过网络进行数据通信时最基础的端到端的一个层次。它的服务满足了传送质量,传达速度,传送费用的不同需要。它还具有差错恢复,流量控制的功能(这个指的是软件)
很多时候我们会发现QQ聊天的速度很快,但是我们上网速度就很慢,这就是因为QQ使用UDP协议,没有纠错功能,而网络的传输使用的是TCP协议,它的纠错功能就会导致传输速度变慢。还有UDP协议
第五层:会话层
它的服务可使应用建立和维持会话。再举个栗子:就像两个人打电话,一个人说,对方听到后回应他,这就是会话层在发挥作用,它能够使信息传递时保持同步,并按次序进行。
第六层:表示层
它包括数据的表示形式,文字,图形,图片等都有各自的格式,就像图片的格式有JPG,GIF等。
还有就是数据含义,就是数据的符号
这一层的作用就是为异种机通信提供一种公共语言,以便相互操作。例如,IBM主机使用EBCDIC编码,而大部分的PC机使用的是ASCII码。这就要表示层来完成这一转换。
第七层:应用层
实现应用进程之间的信息交换。同时还有一系列的业务处理所需要的服务功能。像文件的传送,访问和管理,打印服务都是属于应用层。
七层模型是很抽象的一个概念。一般情况下,物理层,数据链路层,网络层对应的是一个设备,这个设备在某一层就有某种功能,而传输层,会话层,表示层对应的是协议,而应用层就是使用什么样的软件。
HTTP协议工作特点
工作原理
Content-Type请求与实体的对应的MME信息
Accept指定客户端能接受的内容、类型
Origin最初请求来源与哪里主要POST
Cache-Control 指定请求的缓存机制
User-Agent用户信息
Referrer上级请求路径
X-Forwaeded-For请求端真实的IP
Access-Control-Allow-Origin 允许特定域名进行访问,跨域使用
Last-Modified 请求资源的最后相应时间
HTTP请求方法:
HEAD不会回传资源,只会回传头信息
OPTIONS测试服务器功能是否正常,返回该资源服务器支持的所有HTTP请求方法
PUT 更新内容 替换内容
TRACE请求服务器回显的信息 测试
1.刷新页面的时候,get无害,post重新提交数据
2.get能收藏为书签,post不可以
3.get能缓存,post不能
4.get向URL提交数据长度2048字符 post无限制
5.get与post允许数据类型不一样
6.get不安全,在URL中显示,post安全很多
FTP文件传输协议 默认端口21 下载文件,上传主页
Telnet用户能通过自己的身份远程连接到计算机上 远程登录 默认端口23
SMTP定义简单邮箱传输协议 端口25
POP3接收邮件 端口110
HTTP超文本传输协议 端口80
DNS域名解析服务 windowNT系统中用的多 端口53
文件写入:将文件的内容读取出来,在开头加入Hello World
//打开文件
//将文件的内容读取出来,在开头加入Hello World
//将拼接好的字符串写回到文件当中
$file = './hello.txt'
$handle = fopen($file,'r');
$content = fread($handle,filesize($file)); //读取文件
$content = 'Hello World'.$content; //连接字符
fclose($handle);
$handle = fopen($file,'w'); //只读
fwrite($handle,$content);
fclose($handle);
遍历文件夹下的文件
//打开目录
//读取目录当中的文件
//如果文件类型是目录,继续打开目录
//读取子目录的文件
//如果文件类型是文件,输出文件名称
//关闭目录
$dir = './test';
function loopDir($dir) //递归遍历方法
{
$handle = opendir($dir);
while(false!==($file = readdir($handle)))
{
if($file!='.'&&$file!='..')
{
echo $file."\n";
if(filetype($dir.'/'.$file)=='dir') //如果是文件夹
{
loopDir($dir.'/'.$file); //调用本身函数
}
}
}
}
loopDir($dir);
魔术方法