PHP基础阶段内容
1 php 基本概念,常规语法
什么是php
一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,而且容易学习。该语言让 Web 开发人员快速的书写动态生成的网页。
php的注释方式
1. 多行注释:/**/
2. 单行注释://、#
php现在的最新版本
5.5.36
5.6.22
7.0.7
wamp是什么?
W:windows
A:apache
M:mysql
P:php
一组常用来搭建动态网络或服务器的开源软件
php的数据类型
八种:
四种标量类型:
String(字符串)
Integer(整型)
Float(浮点型,也作double)
Boolean(布尔型)
两种复合类型:
Array(数组)
Object(对象)
两种特殊类型:
Resource(资源)
NULL(空)
php中字符串的单引号和双引号的区别
单引号比双引号的效率高(某些特殊情况)
单引号:中的数据视为普遍的字符串
双引号:要对其数据进行处理
php的随机数函数?不带参数和带参数有什么区别?
Rand(min,max)/Mt_rand(min,max)
Mt_rand的速度比rand快
不带参数时默认范围(在0---32767之间)
带参数的话rand(最小值,最大值)
怎么定义常量?
define("常量名","常量值");值只能是标量,数据类型只能是boolean、integer、float或string;不需要加“$”
怎么输出内容到页面显示?
Echo、print
echo、print_r、var_dump区别?
echo 用于输出数值变量或者字符串。但使用echo来输出引用变量时,如数组,仅输出数组的名字
print_r 作用是输出一个数组,实际上参数expression类型可为数值变量和引用变量。
Var_dump 函数的输出结果<变量类型,变量值,变量长度>参数expression表示各种变量类型,作用是输出一个变量的详细信息。
2 php基础函数(数组、日期、字符串)
怎么定义一个数组?
$Arr = array();
怎么给数组新增加1个值?
Array_push
Array_unshift
$arr[] = ;
foreach语法结构?
Foreach($arr as $key=>$value){
}
foreach仅用于数组和对象
删除数组中的指定元素array_splice()
数组的排序sort()和rsort() 按键值排序sort()从小到大,rsort()从大到小
array_unique()去除数组中的相同元素
in_array()检测一个值是否在数组中(返回true和false)
array_search()返回的是键或值,返回的是键值所对应的键名
array_pop() - 删除数组中的最后一个元素
array_push()数组尾部添加一个或多个元素(入栈),返回新长度。
array_search()- 按元素值返回键名
怎么获取当前的日期时间?
date_default_timezone_get()
gettimeofday()
怎么格式化显示当前的日期时间?
Echo date(‘Y-m-d h:i:s’);
系统默认的是哪个地区的时间?
格林威治时间(GMT)
怎么修改系统的默认时区?
date_default_timezone_set("PRC");中国时区
修改配置文件php.ini 找到data.timezone = ;改为data.timezone = “Asia/shanghai”;
获取字符串的长度?
$length = strlen($str);
将字符串全部转换为小写或大写?
字符串全部转换为小写 : strtolower
字符串全部转换为大写 :strtoupper
查找字符在字符串中第一次或最后一次出现的位置?
Stripos 第一次出现
Strrpos 最后一次出现【不区分大小写】
Trrpos 【区分大小写】
3 web开发(http协议)
http的中文名称?现在的最新版本是多少?访问时的默认端口号?
超文本传输协议
2.4
3306
http协议的特点?
1.支持客户/服务器模式
2.简单快速
3.灵活
4.无连接
5.无状态
http的信息处理流程?
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
请求信息分为几个部分?
四个部分
通用头域、请求消息、响应消息和主体消息
请求方式共计有几种?我们常用的是哪2中请求方式?
八种
1.Get
2.Head
3.Put
4.Delete
5.Post
6.Options
7.Trace
8.Connect
最常用的两种:post/get
请求行中包含哪些信息内容?
请求方法、URI、HTTP版本,最后以回车换行结尾,各个元素之间用空格字符隔开。 请求头中会包含哪些信息?
通用头域包含请求和响应消息都支持的头域,通用头域包含缓存头部Cache-Control、Pragma及信息性头部Connection、Date、Transfer-Encoding、Update、Via。
响应信息分为几个部分?
状态行,响应头,空行,消息体
一个状态行、若个消息头、已经响应正文、其中的一些消息头和正文都是可选的,消息头和正文内容之间要用空格隔开
状态行中包含哪些信息?
HTTP版本号
状态码分几类?分别代表啥意思?列举常见的状态码及其含义?
100-199 用于指定客户端应相应的某些动作。
200-299 用于表示请求成功。
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。
400-499 用于指出客户端的错误。
500-599 用于支持服务器错误。
常见:
200:服务器成功返回网页
302:临时移动
404:请求的网页不存在
502:错误网关 503:服务器超时
100Continue
初始的请求已经接受,客户应当继续发送请求的其余部分
101SwitchingProtocols
服务器将遵从客户的请求转换到另外一种协议
200OK
一切正常,对GET和POST请求的应答文档跟在后面
201Created
服务器已经创建了文档,Location头给出了它的URL。
202Accepted
已经接受请求,但处理尚未完成。
203Non-AuthoritativeInformation
文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝
204NoContent
没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以 确定用户文档足够新,这个状态代码是很有用的
205ResetContent
没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容
206PartialContent
客户发送了一个带有Range头的GET请求,服务器完成了它
300MultipleChoices
客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
301MovedPermanently
客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302Found
类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
303SeeOther
类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取
304NotModified
客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305UseProxy
客户请求的文档应该通过Location头所指明的代理服务器提取
307TemporaryRedirect
和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是 POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。
400BadRequest
请求出现语法错误。
401Unauthorized
客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
403Forbidden
资源不可用。
404NotFound
无法找到指定位置的资源
405MethodNotAllowed
请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。
406NotAcceptable
指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容
407ProxyAuthenticationRequired
类似于401,表示客户必须先经过代理服务器的授权。
408RequestTimeout
在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。
409Conflict
通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。
410Gone
所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。
411LengthRequired
服务器不能处理请求,除非客户发送一个Content-Length头。
412PreconditionFailed
请求头中指定的一些前提条件失败
413RequestEntityTooLarge
目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该 请求,则应该提供一个Retry-After头
414RequestURITooLong
URI太长
416RequestedRangeNotSatisfiable
服务器不能满足客户在请求中指定的Range头
500InternalServerError
服务器遇到了意料不到的情况,不能完成客户的请求服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT求502BadGateway
服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答
503ServiceUnavailable
服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头
504GatewayTimeout
由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答
505HTTPVersionNotSupported
服务器不支持请求中所指明的HTTP版本
EGPCS指代的是什么?
指的是可以从服务器配置和请求的信息中获取的信息,它包括了environment、GET、POST、cookie、server
怎么获取访问用户的IP地址?
getenv(“HTTP_ X_FORWARDED_FOR”);
请求中的Get和Post区别?
get是从服务器上获取信息,post是向服务器传送数据,现在都是提交
如果要上传文件需要进行哪些设置?
enctype="multipart/form-data"
上传文件的信息怎么提取?
FILES[]
怎么获取当前文件的路径和名称?
echo$_FILES['img']['tmp_name']
echo$_FILES['img']['name']
怎么获取当前文件的文件夹路径?
Echo __FILE__
怎么解决http无状态的问题?
创建 表单隐藏字;Cookie; Session; URL重写;
什么是cookie?
Cookie基本上就是一个包含多个字段的字符串。一台服务器可以在响应头部发送一个或多个cookie到浏览器。一些cookie的字段指明哪些浏览器页面可以在请求中发送
什么是session?
Session是存储在服务器端的会话,相对安全
cookie和session的区别?
cookie数据存放在客户的浏览器上,session数据放在服务器上;
Cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗(考虑到安全应当使用session);
Session会在一定时间内保存在服务器上。当访问增多时,会比较占用你服务器的性能(考虑到减轻服务器性能方面,应当使用Cookie);
单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie;
综上所述
将登录信息等重要信息保存到session中,
其他信息需要保留,可放在cookie中。
怎么创建设置cookie信息?
使用cookie前必须设置cookie.
int setcookie(string name, string value, int expire,
string path, string domain,int secure)
怎么使用session?
//启动Session
session_start();
//声明一个名为admin的变量,并赋空值。
$_SESSION["admin"]=null;
$_SESSION[“count"]= $_SESSION[“count"]+1;
echo “这里已经有 $_SESSION[“count"]人浏览过了”;
?>
session的常见函数有哪些?各有什么用处?
ession_start(); //初始化session.需在文件头部
$_SESSION[name]=value; //配置Seeeion
echo $_SESSION[name]; //使用session
isset($_SESSION[name]); // 判断
unset($_SESSION[name]); //删除
session_destroy(); //删除所有session,但是写入cookie的信息无法自动去掉
如果客户端禁止了cookie怎么处理?
4 ajax
ajax的中文名称?
ajax简述?
也就是说AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
ajax中包含哪些技术?
7项技术,其中Javascript、XMLHttpRequest、Dom、XML是最为重要
ajax对象有哪些常用函数,及其功能?
Abort():停止当前请求;
getAllResponseHeaders():作为字符串返回完整的headers;
getResponseheader(“hederLabel”):作为字符串返回单个的header标签;
Open(“method”,“URL”[,asyncFlag[,”userName”[,”password”]]]):设置未决的请求的目标URL方法和其他参数;
Send(content):发送请求;
setRequestHeader(“label”,”value”):设置header并和请求一起发送;
ajax对象的常用属性有哪些?
Onreadystatechange:状态改变的事件触发器
readyState:对象状态(integer):0=未初始化,1=读取中,2=已读取,3=交互中,4=完成
responseText:服务器进程返回数据的文本
responseXML:服务器进程返回数据的兼容DOM的XML文档对象
Status:服务器返回的状态码,如404=“文件未找到”、200=“成功”
statusText:服务器返回的状态文本信息
jquery的ajax函数格式及其常用参数、写法?
$.ajax({
type:"POST", //请求方式
url:"jqajax1.php", //请求的地址
data:"username="+$("input[type='text']").val(), //请求的参数字符串
dataType:"json", //设置返回的数据类型,默认值为"text"
success:function(msg){//接收成功返回的数据结果
$("#p1").html("接收的返回值: " + msg );
},error:function(msg){
$("#p1").html("有错误了: " + msg );
}
});
5 php+mysql(mysql函数)
要连接mysql之前的要设置什么?
在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。
php操作mysql数据库的步骤?
mysql_connect()建立数据库连接
mysql_select_db()选择操作的数据库
mysql_query()执行SQL语句
mysql_fetch_array()返回一行记录(数组)
mysql_num_rows()返回结果集中行的数目
mysql_close()关闭数据库
创建数据库连接的函数?参数有几个?每个参数代表什么含义?
mysql_connect() 建立数据库连接
参数共计5个:
第一个参数:服务器名称或者地址,同时可以加上端口号(如果是默认的3306,则可以省略);
第二个参数:登录的用户名;
第三个参数:登录密码;
第四个参数:是否使用可能重名的相同连接对象(如果该对象已经创建),默认为false;
第五个参数:常量组合,设置连接的模式,默认值为0;
(连接成功,返回结果为资源类型;如果失败,报错并且返回false)
怎么选择要操作的数据库名称?
mysql_select_db(“数据库名称”) 选择操作的数据库
执行sql语句的函数?该函数返回值是什么类型?
mysql_query();仅对select,show,describe或explain等语句如果成功就返回资源类型;
对于update,delete,drop,insert等语句,成功返回true,失败返回false。
怎么获取查询结果集的数量?
Mysql_result(),
mysql_fetch_row(),
mysql_fetch_array()
怎么提取结果集中的数据?提取出来的数据是什么样的格式?
mysql_fetch_array();
MYSQL_ASSOC():返回的数组将以该记录的字段名称作为下标
MYSQL_NUM():返回的数组以从0开始的数字为下标
MYSQL_BOTH:返回的数组既可以用字段名为下标,也可以用数字为下标
怎么关闭数据库连接?
mysql_close();
6 其他
empty()
empty()函数检查一个变量是否为空或零值,如果变量值是非空或非零值,则empty()返回FALSE,否则返回TRUE
isset()
isset()函数来检查变量是否存在
gettype()
gettype()获取变量的类型
settype()
一种强制转换类型的函数方法
语法格式:bool settype(mixed $var,string $type)
例如:$var="123hello"; //$var为字符串
settype($var, "int"); //$var现在为整型(值为123)
错误控制运算符 @
将其放置在PHP表达式之前,该表达式可能产生的任何错误信息都将被忽略
执行运算符 `
PHP支持一个执行运算符,即反引号(``)
在PHP脚本中,将外部程序的命令行放入反引号中,并使用echo()或print()函数将其显示,PHP将会在到达该行代码时启动这个外部程序,并将其输出信息返回,其作用效果与shell_exec()函数相同
反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。
与其它某些语言不同,反引号不能在双引号字符串中使用。
字符串拼接 .
使用“.”
定界符<<<+名称
“<<<”之后提供一个标志符,然后是字符串,最后用同样的标志符结束字符串。结束标志符必须从行的第一列开始,标志符必须遵循PHP中标记的命名规则:只能包含字母、数字、下划线,而且必须以下划线或非数字字符开始