第一篇:PHP基础总结
1、在HTML嵌入PHP脚本有三种办法:
<scriptlanguage=“php”>
//嵌入方式一
echo(“test”);
</script>
<?
//嵌入方式二
echo“<br>test2”;
?>
<?php
//嵌入方式三
echo“<br>test3”;
?>
还有一种嵌入方式,即使用和Asp相同的标记<%%>,但要修改PHP.ini 相关配置,不推荐使用。
2、PHP注释分单行和多行注释,和java注释方式相同。
<?
//这里是单行注释
echo“test”;
/*
这里是多行注释!可以写很多行注释内容
*/
?>
注意不要有嵌套注释,如/*aaaa/*asdfa*/asdfasdfas*/,这样的注释会出现问题。
3、PHP主要的数据类型有5种,integer,double,string,array,object。
4、函数内调用函数外部变量,需要先用global进行声明,否则无法访问,这是PHP与其他程序语言的一个区别。事例代码:
<?
$a=1;
functiontest(){
echo$a;
}
test();//这里将不能输出结果“1”。
functiontest2(){
global$a;
echo$a;
}
test2();//这样可以输出结果“1”。
?>
注意:PHP可以在函数内部声明静态变量。用途同C语言中。
5、变量的变量,变量的函数
<?
//变量的变量
$a=“hello”;
$$a=“world”;
echo“$a$hello”;//将输出“helloworld”
echo“$a${$a}”;//同样将输出“helloworld”
?>
<?
//变量的函数
functionfunc_1(){
print(“test”);
}
functionfun($callback){
$callback();
}
fun(“func_1”);//这样将输出“test”
?>
6、PHP同时支持标量数组和关联数组,可以使用list()和array()来创建数组,数组下标从0开始。如:
<?
$a[0]=“abc”;
$a[1]=“def”;
$b[“foo”]=13;
$a[]=“hello”;//$a[2]=“hello”
$a[]=“world”;//$a[3]=“world”
$name[]=“jill”;//$name[0]=“jill”
$name[]=“jack”;//$name[1]=“jack”
?>
7、关联参数传递(&的使用),两种方法。例:
<?
//方法一:
functionfoo(&$bar){
$bar.=“andsomethingextra”;
}
$str=“ThisisaString,”;
foo($str);
echo$str;//output:ThisisaString,andsomethingextra
echo“<br>”;
//方法二:
functionfoo1($bar){
$bar.=“andsomethingextra”;
}
$str=“ThisisaString,”;
foo1($str);
echo$str;//output:ThisisaString,echo“<br>”;
foo1(&$str);
echo$str;//output:ThisisaString,andsomethingextra
?>
8、函数默认值。PHP中函数支持设定默认值,与C++风格相同。
<?
functionmakecoffee($type=“coffee”){
echo“makingacupof$type.n”;
}
echomakecoffee();//“makingacupofcoffee”
echomakecoffee(“espresso”);//“makingacupofespresso”
/*
注意:当使用参数默认值时所有有默认值的参数应该在无默认值的参数的后边定义。否则,程序将不会按照所想的工作。
*/
functiontest($type=“test”,$ff){//错误示例
return$type.$ff;
}
9、PHP的几个特殊符号意义。
$变量
&变量的地址(加在变量前)
@不显示错误信息(加在变量前)
->类的方法或者属性
=>数组的元素值
?:三元运算子
10、include()语句与require()语句
如果要根据条件或循环包含文件,需要使用include()。
require()语句只是被简单的包含一次,任何的条件语句或循环等对其无效。
由于include()是一个特殊的语句结构,因此若语句在一个语句块中,则必须把他包含在一个语句块中。
<?
//下面为错误语句
if($condition)
include($file);
else
include($other);
//下面为正确语句
if($condition){
include($file);
}else
{
include($other);
}
?>
第二篇:PHP基础阶段知识总结
php基础阶段内容: 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表示各种变量类型,作用是输出一个变量的详细信息。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
【区分大小写】 web开发(http协议)
http的中文名称?现在的最新版本是多少?访问时的默认端口号? 超文本传输协议 2.4 3306 http协议的特点?
1.支持客户/服务器模式 2.简单快速 3.灵活 4.无连接 5.无状态
http的信息处理流程?
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 请求信息分为几个部分? 四个部分
通用头域、请求消息、响应消息和主体消息
请求方式共计有几种?我们常用的是哪2中请求方式? 八种 1.Get 2.Head 3.Put
4.5.6.7.8.Delete Post Options Trace 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:服务器超时
Continue 初始的请求已经接受,客户应当继续发送请求的其余部分 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议 200 OK 一切正常,对GET和POST请求的应答文档跟在后面 201 Created 服务器已经创建了文档,Location头给出了它的URL。202 Accepted 已经接受请求,但处理尚未完成。203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝 204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的 205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容
206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它 300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取 304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取 307 Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是 POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码: 当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。400 Bad Request 请求出现语法错误。401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
403 Forbidden 资源不可用。404 Not Found 无法找到指定位置的资源 405 Method Not Allowed 请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容 407 Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。408 Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。410 Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。412 Precondition Failed 请求头中指定的一些前提条件失败 413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头 414 Request URI Too Long URI太长
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头 500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT求502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答
503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头 504 Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答 505 HTTP Version Not Supported 服务器不支持请求中所指明的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怎么处理? ajax ajax的中文名称? 异步JavaScript和XML
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){//接收成功返回的数据结果
$(”#div1“).html(”接收的返回值: “ + msg);
},error: function(msg){
$(”#div1“).html(”有错误了: “ + msg);
}
});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();其他
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中标记的命名规则:只能包含字母、数字、下划线,而且必须以下划线或非数字字符开始
第三篇:PHP基础培训班教学大纲
PHP基础培训班教学大纲
无它,唯手熟尔。只要功夫深铁杵磨成针。绳锯木断。不要拘泥于对与错。学历与技术。
PHP简介&市场、网站原理 asp/php/jsp/java 百度 网易 新浪 搜狐 腾讯 Facebook 开心网 淘宝 论坛
HTML 语法:<标签 属性=”属性值”>作用文字标签> 介绍font、table表格、a、hr、div、img、ul&li。介绍form表单。
CSS样式表。(color、background、font-size、margin、text-align)
JavaScript。
PHP 环境和手册准备。AppServ、EditPlus。基本语法(起始符)运行流程(从上往下)数据类型(布尔型、整型、浮点型、字符串、数组)变量 常量 赋值
运算符(字符串运算符、算术运算符、字符串运算符)结构
1、流程控制(if、while、for)
2、文件包含。
函数(str_replace、strtolower、strlen、ceil、floor、date、md5)数组(explode、print_r、var_dump)
文件操作&存储(file_get_contents、unlink)计数器 GD图像函数库 自定义函数 递归 SESSION 购物车 COOKIE 文字留言本
正则表达式(查找、替换、分割)
模板引擎(Smarty、SmartTemplate、PHPlib)Debug方式。
MySQL 环境和手册准备。PhpMyAdmin。
服务器、数据库、数据表、字段之间的关系。
数据库编码。数据表类型。字段类型(varchar、int、text、float)。PhpMyAdmin的使用方法。
数据库基本操作(select、insert、update、delete)。
综合应用
第四篇:学php需要哪些基础?程序员需要哪些素质呢?
www.xiexiebang.com
学php需要哪些基础?程序员需要哪些素质呢?
中国每年有大量的计算机类毕业生进入企业,企业会把那些程序员列入优秀人才加以重视呢?斩获高薪的程序员需要哪些素质呢?
团队精神和协作能力
团队精神是程序员应该具备的基本素质,任何个人的力量都是有限的。即便如Linus这样的天才,也需要通过组成强大的团队来创造奇迹。那些遍布全球的为Linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏团队精神的人就完全不合格了。
文档习惯
说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,条理清晰的文档是正规研发流程中 非常重要的环节。作为代码程序员,3成的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇 到极大的麻烦。
四川地处中国大西南,肥沃的土地,丰富的自然资源,悠久的历史和绚烂多彩的少数民族文化,构成了多样性的自然和文化旅游资源。每到中考季,很多初中生总是为自己的未来前途担心,尤其是一些学习成绩不好的初中生,他们不知道中考没考上怎么办。同时许多家长也担心,自己的孩子年龄还小,进入社会显然不合适。这个时候职业培训学校更加适合,放眼众多学院,四川国信安职业培训学校无疑是非常合适的。
寻寻觅觅,走马观花,你在it培训这条路上看了多久?走了多远?你是否还在为它而困扰?你是否发现找到一个心仪的实在太麻烦!其实选择也可以很简单!让小编带你走进it培训,来了解些实用干货。接下来就让小编带你来看看it培训相关的情况吧~请看下文~
www.xiexiebang.com
学php需要哪些基础?这是很多人在学习php之前想到的一点,因为大家都觉得这门课程很陌生,也担心自己会学习的非常吃力。但同时,php领域的高工资又诱惑着大家,即使是小白都想快速成为高手。
学php需要哪些基础?从培训机构的角度来讲,大家不需要有任何基础,因为不管你是行业精英还是初始学习者,学校都会给大家提供适合自己的课程,有的以基础班为准,有的以提升班为准,课程方向不同,学习的深度就有所差别。知道了培训机构的课程设置之后,我们就应该充分考虑一下自己的现状了。建议小白人员从最基础的理论部分开始学习,先不要忙着去实践,先掌握知识的来龙去脉,等到有了自己的思考和理解之后再去进修即可。国信安教育基地给出了循序渐进的学习方法,只为给大家提供优良的学习思路,从而让每个人成为行业精英。
学php需要哪些基础?因此大家根本不用担心基础问题,国信安教育基地会给出适合你的学习方案和计划,大家只需要按部就班的跟着老师的思路执行即可。不管你是不是行业小白,相信在国信安这种培训机构的带领下,我们会快速认识到php相关的概念和知识,从而让你成为唾手可得的人才,进而在求职市场中获得更多公司的青睐。至于学习时间,需要根据大家的时间安排进行设定,如果每天学习几个小时,不出几个月,你就成为php领域的专家了。
国信安IT培训基地指定的官方IT人才培训机构。专注java培训、php培训、UI设计培训、IOS培训、安卓培训、嵌入式培训、.NET培训、web前端培训等培训课程。你们准备好怎么学习IT技术了吗?来参加国信安IT培训课程,你的选择不会有错!
第五篇:php课程总结
一、时间和地点:
每周四上午在F311上课。
二、课程内容:
通过这段时间的学习,我对PHP中的MySQL数据库有了一定的理解。由于以前没有基础,在老师讲课的过程开始有点费尽,尽量记了一些。首先学习了一些定义:MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
数据(Data)是对客观事物的符号表示,如图形符号、数字、字母等,数据是数据库中存储的基本对象。在日常生活中,人们直接用语言来描述事物;在计算机中,为了存储和处理这些事物,就要将事物的特征抽象出来组成一个记录来描述。之后,进行数据的编写,知道了数据库的发展史:人工管理阶段(人力手工整理存储数据)、文件系统阶段(使用磁盘文件来存储数据)、数据库系统阶段、关系型数据库、高级数据库阶段、“关系-对象”型数据库。再然后学习了数据库的类型:
(1)纯文本数据库: 纯文本数据库是只用空格符、制表符和换行符来分割信息的文本文件。适用于小型应用,对于大中型应用来说它存在诸多限制:
只能顺序访问,不能进行随机访问。 查找数据和数据关系或多用户同时访问进行写操作时非常困难。
(2)关系数据库:
由于纯文本数据库存在诸多局限,所以人们开始研究数据模型,设计各种类型的使用方便的数据库。在数据库的发展史上,最具影响的数据库模型有:层次模型、网状模型和关系模型。其中,关系模型是目前应用最广泛和最有发展前途的一种数据模型,其数据结构简单,当前主流的数据库系统几乎都采用关系模型。数据库管理系统:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
MySQl特征:性能快捷、优化SQL语言、容易使用、多用户支持、可移植性和开放源代码、遵循国际标准和国际化支持、为多种编程语言提供API。
mysql命令:mysql命令
mysql-h host_name-u user_name –ppassword h:当连接MySQL服务器不在同台主机时,填写主机名或IP地址 u:登录MySQL的用户名 p:登录MySQL的密码
注意:密码如果写在命令行的时候一定不能有空格。如果使用的系统为linux并且登陆用户名字与MySQL的用户名相同即可不用输入用户名密码,linux默认是以root登陆,windows默认用户是ODBC mysql程序常用命令:选定默认数据库:use dbname;显示所有数据库:show databases;显示默认数据库中所有表:show tables;放弃正在输入的命令:c;显示命令清单:h;退出mysql程序:q;查看MySQL服务器状态信息:s 接着我们讲了数据库基础知识,在此课中我们了解了数据库: 数据库由一批数据构成的有序集合,这些数据被分门别类地存放在一些结构化的数
据表(table)里,而数据表之间又往往存在交叉引用的关系,这种关系使数据库又被称为关系型数据库 档案柜=数据库 抽屉=表 文件=记录
一、数据库的组成以及功能
1、SQL语法组成:DML(Data Manipulation Language数据操作语言)
——查询、插入、删除和修改数据库中的数据; ——SELECT、INSERT、UPDATE、DELETE等;
DCL(Data Control Language数据控制语言)
——用来控制存取许可、存取权限等; ——GRANT、REVOKE 等;
DDL(Data Definition Language数据定义语言)——用来建立数据库、数据库对象和定义其列
——CREATE TABLE、DROP TABLE、ALTER TABLE 等 功能函数
——日期函数、数学函数、字符函数、系统函数等
2、MysQl数据库增删改查:
数据库的操作:增、删、改、查
增 create database name、删 drop database name、查 show databases 改 没有修改数据库的语句、可以修改数据库的名字
Myisan 直接进入mysql data文件夹进行修改、Innodb 不可以改名,只能重建 几个重要的数据库:
Informatio_schema 存储数据库的各种信息用户信息,列表信息,字符集信息等等„.Mysql用户权限信息
Test 仅供用户使用的测试数据库,可以随意使用 Cluster 服务器数据集,不可以删除
Phpmyadmin mysql图形管理软件的一种web
3、数据表的操作
Use 数据库名; 增 create table 表名(字段名 字段类型[约束条件],字段名 字段类型[约束条件]。。)
删 drop table 表名 改
查 show tables
4、数据类型种类:
数值型
分为整型和浮点型
整型:可以由十进制和十六进制表示
整数由数字序列组成,如:1,100。
由十六进制表示方法:0x且后面加1—9和A—F 的任意数字或字母,并且0x中的X不能大写。
浮点型:
浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。
数值列的完整性约束
(1)AUTO_INCREMENT 自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为PRIMARY KEY 或者定义为UNIQUE键。
举例:
create table t(id int auto_increment not null primary key);(2)UNSIGNED 无符号,此属性禁用负值,将数值的取值范围从零开始。举例:
create table t(num tinyint , num2 tinyint unsigned);(3)NULL和NOT NULL 默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。(4)DEFAULT 可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。(5)ZEROFILL 前导零填充数值类型值以达到列的显示宽度。
举例:
create table test2(num1 int default 1,num2 int zerofill);CHAR和VARCHAR类型:
CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:
CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。
VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。
5、创建数据库:
建立数据库操作:
语法:create database 数据库名
叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。例:建立一个student库。
mysql> create database student;创建表:建立表操作:
语法:create table 表名( 列名1 列类型 [<列的完整性约束>], 列名2 列类型 [<列的完整性约束>], ......);叙 述:在当前数据库下新创建一个数据表。
列类型:表示该列的数据类型。例:
建立一个表school,其由两列组成,第一列属性为非空,并做为主键,并自增
create table school( school_id int(10)not null auto_increment primary key, school_name varchar(20)
);
6、主键与外键:数据表之间的关联/引用关系是依靠具体的主键(primary key)和外键(foreign key)建立起来的。
(1)主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。
主键必须是唯一的
主键应该是紧凑的,因此整数类型比较适合
主键
create table student(sid int not null auto_increment, name varchar(20)not null, primary key(sid));(2)外键:引用另外一个数据表的某条记录。
外键列类型尽可能与主键列类型保持一致 外键列应该加上NOT NULL 外键(自动检查外键是否匹配,仅适用InnoDB)
create table score(cid int not null auto_increment primary key, score int, sid int, foreign key(sid)references student(sid));
7、删除数据库或表操作
删除表操作
语法:drop table [if exists] tab_name [,tab_name]...叙述:从数据库中删除给定的表。如果给出if exists 子句,则删除不存在的表不会出错。
删除数据库操作
语法:drop database [if exists] db_name 叙述:删除给定的数据库。在删除一个数据库后,它就永远没有了,因此要特别小心。如果给出if exists 子句,则删除不存在的数据库不会出错。
更改表结构操作:
语法:alter table 表名 action; 说明:action 可以是如下语句:
add 列名 建表语句 [first | after 列名] 可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列
add primary key(列名)为表添加一个主键,如果主键已经存在,则出现错误
add foreign key(列名)references 表名(列名)为表添加一个外键
alter 列名 set default 默认值
可以更改指定列默认值
举例1:
向people表中添加字段address2,类型为varchar,最大长度为100 alter table people add address2 varchar(100);
8、插入记录操作
叙述:
如果表名后面没写字段名,则默认是向所有的字段添加值,另外字符串值应该用‘ ’或“ ”引号括起来
举例1:向people表中添加一条记录:
insert into people(name,age)
values(“zhangsan”,20);多表查询—分类
连接查询
同时涉及多个表的查询称为连接查询 用来连接两个表的条件称为连接条件
内连接(INNER JOIN) 外连接
——左外联结(LEFT JOIN)——右外联结(RIGHT JOIN)
二、算数运算符
(1)用字符串表示的数字在任何可能便于计算的地方都被自动地转换为数字。当执行转换时,MySQL遵循两个基本规则:
如果第一位是数字的字符串被用于一个算数运算中,那么它被转换为这个数字的值。 如果一个包含字符和数字混合的字符串不能被正确的转换为数字,那么它被转换成0。
(2)比较运算符
比较运算符允许我们对表达式的左边和右边进行比较。一个比较运算符的结果总是1(真),0(假),或是为NULL(不能确定)。 比较运算符可以用于比较数字和字符串。数字作为浮点值比较,而字符串以不区分大小写的方式进行比较(除非使用特殊的BINARY二进制关键字)
在第二章中我们学习到了数据库的连接。
1、mysql 连接:
七剑下天山
// 第一贱:连接数据库
• mysql_connect — 打开一个到 MySQL 服务器的连接
• mysql_pconnect — 打开一个到 MySQL 服务器的持久连接
• //resource mysql_connect([ string $server [, string $username [, string
$password [, bool $new_link [, int $client_flags ]]]]])(在php手册中有 • //mysql 连接:
• // mysql_connect 非持久连接,效率较低,对资源消耗小 • // mysql_pconnect 持久连接,效率高,消耗大量的资源 • $link=mysql_connect('localhost:3306','root','root');• var_dump($link);// 第二贱:判断连接是否成功
• //第二贱:判断连接是否成功//mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码
• //mysql_error — 返回上一个 MySQL 操作产生的文本错误信息
• //echo mysql_errno();正确返回0,错误返回一个正整数,输出最近一次的mysql错误。
// 第三贱:设置字符集
• bool mysql_set_charset(string $charset [, resource $link_identifier ])• //mysql_set_charset — Sets the client character set • //bool mysql_set_charset(string $charset [, resource $link_identifier ])• mysql_set_charset('utf8');// 第四贱:选择数据库
• //mysql_select_db — 选择 MySQL 数据库 • mysql_select_db('company11');• mysql_select_db — 选择 MySQL 数据库 • 说明
• bool mysql_select_db(string $database_name [, resource $ link_identifier ])• 成功时返回 TRUE,或者在失败时返回 FALSE.• mysql_select_db()设定与指定的连接标识符所关联的服务器上的当前激活数据库。如果没有指定连接标识符,则使用上一个打开的连接。如果没有打开的连接,本函数将无参数调用 mysql_connect()来尝试打开一个并使用之。
// 第五贱:准备并且发送sql语句
• //$sql='select * from biao';• //mysql_query($sql)//mysql_query — 发送一条 MySQL 查询
//resource mysql_query(string $query [, resource $link_identifier ])// 第六贱: 判断执行结果,或者遍历结果集
• //增删改的判断
• $result=mysql_query($sql);(放入第五贱)• if($result && mysql_affected_rows()){ •
echo '执行成功';• }else{ •
echo '执行失败,或者不存在数据';• } • $sql=“insert into zhiyuan(name,sex,bumen)values('zhou',0,2)”;• $sql=“update zhiyuan set bumen=3 where name='小王'”;• $sql=“insert into zhiyuan(name,sex,bumen)values('小王',0,2)”;// 第七贱:万贱归宗 */
之后,学习了面向对象。
1、面对对象技术的基本观点如下:
(1)客观世界由对象组成。
(2)具有相同数据(属性)和操作(方法)的对象可归纳成类。
(3)类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性(4)对象之间的联系通过消息传递(可理解为方法调用)来维系。
假设m1是类Manager的一个实例(或对象),当外界要求把这个对象所 代表的那位经理的级别改变为2时,就应以下面的方式向这个对象发出一条消息: ml.ChangeLevel(2)消息传递
PHP的WEB技术面向对象是仿造现实对象建立的,他们也有状态和行为。软件对象在一个 或多个变量中维护它的状态。变量是一个由标识符命名的数据项。对象用方法实现它的行为。方法是与一个对象相关联的函数(子过程)。
• 对象有二个性质:状态(state)和行为(behavior)。• 对象是一个封装数据属性和操作行为的实体.2、面向对象
将相关的变量和方法封装进一个简洁的软件组合是一种简单而强大的思想,它给软件开发人员提供了两个主要的好处:
模块化:一个对象的源代码可以独立于其他对象的源代码进行编写和维护。另外,对象很容易地在系统中传递。你可以将你的自行车对象交给其他人,而它仍然会正常工作。(重构、代码复用)
隐藏信息:对象有一个公共接口,其他对象可以使用这个接口与它通信。对象可以维护私有的信息和方法,可以在任何时候改变这些信息和方法,而不影响依赖于它的其他对象。你不需要理解你自行车使用的变速齿轮机制就能够使用它。即是:封装
3、类
类是一组具有相同数据结构和相同操作对象的集合。
在现实世界中,常常有相同类型的许多对象。例如,你的自行车只是世界上的许多自行车之一。用面向对象的术语来说,你的自行车对象是自行车类的一个实例。自行车有一些共有的状态(当前的变速齿轮、当前的步调、两个轮子)和行为(改变变速齿轮、刹车)。但是,每辆自行车状态独立于其他自行车状态,也就说每辆自行车的状态可以互不相同。
• function jia($no1,$no2){ •
return $no1+$no2;• } • function jian($no1,$no2){ •
return $no1-$no2;• } • function cheng($no1,$no2){ •
return $no1*$no2;• } • function chu($no1,$no2){ •
return $no1/$no2;• } • function max(){
• echo '我是最大值';• }
4、类的成员-字段(1)、声明字段 name;?>(2)使用字段
• 与变量不同,使用字段要使用->操作符,而不是美元符号
– $employee=new Staff();– echo $employee->name;• 当在定义字段的类中引用字段时要使用$this关键字。$this表示当前类
5、、构造函数
构造函数是类中的一个特殊函数,当使用 new 操作符创建一个类的实例时,构造函数将会自动调用。
Php5中以__construct()作为构造函数。而php4中是以将和类名相同的函数作为构造函数。为了兼容php5先寻找__construct(),如果找不到再寻找以类名命名的构造函数
如果一个类没有构造函数,则调用基类的构造函数 Class Staff { function __construct()//两个下划线 { echo “调用了构造函数”;} function Staff(){ echo “调用了构造函数2”;} } $employee=new Staff();• //构造方法 函数
• //特点,就是在new 的时候也就是调用这个壳的时候就进行了调用的方法
• //写法:php4中只认识一种 类名和函数名相同的话,那个函数就是使构造方法 • //php5中 类名和函数名相同/__construct()都是构造方法
• //注意:构造方法在类中只能有一个 不要写多个 使用PHP4的或者PHP5的两个相同构造方法会报重载错误
• //但是如果一个PHP4的一个PHP5的构造方法就不会报错,但是逻辑有问题
• //构造方法的参数传值,是在调用类的时候()放的就是为构造方法准备的参数 //析构方法 函数 __destruct()• //特点,析构方法是在调用完之后,自动执行 在接收类调用的变量改值的时候/或者页面结束 自动启动
• //声明关键字 [private protected public var ]
6、析构函数
(1)析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。脚本执行结束时,php会撤销内存中的所有对象,因此如果实例化时创建的信息都会保留到内存中,就不需要显式的声明析构函数。但是如果创建了不那么容易丢失的数据时(例如连接数据库)就应当定制析构函数进行销毁数据。Class Staff { function __construct(){ echo “调用了构造函数”;} function __destruct(){ echo “调用了析构函数,需要释放和销毁的“;} } $employee=new Staff();(2)类的成员-属性_set()__set()//两个下划线
$this->$propname=$propvalue;
print ”ok
“;} } $model=new Test();$model->age=25;$model->title=”English“;echo ”
“;print ”age: “.$model->age.”
“;echo ”
“;print ”title: “.$model->title.”
“;?> 可用来验证某个属性是否存在或增加新的属性
7、控制对类的成员访问
(1)public :在任何位置都可以读取和修改这个成员变量或者调用这个方法。这个修饰符在外部代码使用,由给定类中的代码使用,或者在扩展给定类的功能的类中使用。
(2)private : 只有这个类中的代码才能读取和修改私有变量或者调用私有成员函数。其他代码、类或者扩展这个类的功能类(子类)不能使用私有条目。
(3)protected : 外部代码与给定类不相关的其他类不能读取或者修改使用了关键字protected的成员变量,也不能调用受保护的成员函数。(4)abstract 定义抽象类
(5)final 子类方法不允许覆盖父类方法 先了解,下一章重点阐述
8、静态类成员
当需要一些所有类对象共享的字段和方法时就需要创建一些静态的字段和方法。Class Staff { public static $name=”静态字段“;static function show(){
echo self::$name,”
“;} } echo Staff::$name,”
“;Staff::show();
9、常量
常量(const)即不会在类中改变的值,对于该类的任何实例化的对象来说 常量值在这些对象的整个生命周期中都保持不变 Class Staff { const CITY=“北京”;} echo Staff::CITY;
之后,学习了PHP正则表达式
1、正则表达式简介
正则表达式是用于描述字符排列模式一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。
在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述。
在程序语言中,通常将模式表达式(即正则表达式)包含在两个反斜线“/”之间,如“/apple/”。用户只要把需要匹配的模式内容放入定界之间即可。
如果使用一个没有特殊字符的正则表达式,相当于纯文本搜索,使用strstr()函数也可达到同样的效果。
2、^ 和 $ ”^The“: 开头一定要有”The“字符串;”of despair$“: 结尾一定要有”of despair“ 的字符串;那么, ”^abc$“: 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配
”notice“: 匹配包含notice的字符串 你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式)可以出现在被检验字符串的任何地方,你没有把他锁定到两边(开始或结束)
3、'*', '+',和 '?', * 表示出现0次或1次或多次 相当于{0,}, + 表示出现1次或多次 相当于{1,}, ? 表示出现0次或1次 相当于{0,1}, 这里是一些例子: ”ab*“: 和ab{0,}同义,匹配以a开头,后面可以接0个或者N个b组成的字符串(”a“, ”ab“, ”abbb“, 等);”ab+“: 和ab{1,}同义,同上条一样,但最少要有一个b存在(”ab“, ”abbb“, 等.);”ab?“:和ab{0,1}同义,可以没有或者只有一个b;”a?b+$“: 匹配以一个或者0个a再加上一个以上的b结尾的字符串.要点, '*', '+',和 '?'只管它前面那个字符.4、[ ] 中括号括住的内容只匹配一个单一的字符
”[ab]“: 匹配单个的 a 或者 b(和 ”a|b“ 一样);”[a-d]“: 匹配'a' 到'd'的单个字符(和”a|b|c|d“ 还有 ”[abcd]“效果一样);一般我们都用[a-zA-Z]来指定字符为一个大小写英文 ”^[a-zA-Z]“: 匹配以大小写字母开头的字符串 ”[0-9]%“: 匹配含有 形如 x% 的字符串
”,[a-zA-Z0-9]$“: 匹配以逗号再加一个数字或字母结尾的字符串
5、正则表达式的语法规则
正则表达式是主要由: 原子(普通字符,如英文字符) 元字符(有特殊功用的字符) 以及模式修正字符组成。
一个正则表达式中至少包含一个原子。
6、PHP中的正则表达式函数
在PHP中有两套正则表达式函数库。
一套是由PCRE(Perl Compatible Regular Expression)库提供的。PCRE库使用和perl相同的语法规则实现了正则表达式的模式匹配,其使用以“preg_”为前缀命名的函数。
另一套是由POSIX(Portable Operation System interface)扩展库提供的。POSIX扩展的正则表达式由POSIX 1003.2定义,一般使用以“ereg_”为前缀命名的函数。
两套函数库的功能相似,执行效率稍有不同。一般而言,实现相同的功能,使用PCRE库的效率略占优势。
7、、正则表达式的拆分
1split()和spliti()函数原型:
array split(string $pattern,string $string[,int $limit])本函数返回一个字符串数组,每个单元为$string经正则表达式$pattern作为边界分割出的子串。如果设定了$limit,则返回的数组最多包含$limit个单元。而其中最后一个单元包含了$string中剩余的所有部分。Spliti是split的忽略大小版本。
之后,学习了文件系统处理。
open()打开文件或者URL $file=fopen('1.txt','r');//只读模式打开 //r 只能读取不能写入
//r+ 增强的读写模式 表示以只读模式打开,但是仍然可以进行部分的写入操作 //w 写模式 打开文件的时候,原有内容会被清空 如果文件不存在就新建一个文件,再打开
//w+ 增强的读写模式
//a 追加模式(写)不会清空原有文件而是在源文件的基础上进行累加 不存在也可以新建
//a+ 增强的追加模式(读写)/x异或模式 文件存在就报错,不存在就创建 //x+增强的异或模式 //b 打开二进制文件
1、文件的打开
2、文件的删除
//rename('1.txt','1.exe');/ /删除
rmdir('C')//删除空目录 ?>
3、什么是文件系统
就是对系统或者服务器中的文件进行操作,增删改查,文件的上传和下载
4、文件系统能做什么?
a)文件缓存的应用 b)配置文件的应用
c)FTP站点主要是FTP下载站 d)站点页面的静态化 e)文件的上传和下载。
5、文件下载:查找 header
header('content-type:image/gif');//告诉浏览器你的文件描述
header('Content-Disposition: attachment;filename=”baidu.gif"');//告诉浏览器文件的大小
header('content-length'.filesize('baidu.gif'));//显示内容
readfile('baidu.gif');?>
三、个人收获
学习PHP的过程做一下概括:
(1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度
(2)理解动态语言的概念,运做机制,熟悉PHP语法
(3)学习如何将PHP与HTML结合起来完成简单动态页面
(4)接触MYSQL,开始设计数据库程序
(5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板
(6)完成一个功能齐全的动态站点
通过这段时间的学习,自己受益匪浅,知道了很多关于PHP的东西,学会了很多内容。在这堂课的学习过程中我认真听讲,上机认真练习,遇到难题,自己思考与探索,不断地寻求进步,请教老师和同学,虽然上半年没有学习这门课程,不过老师讲课非常仔细,然后同学们一步步自己跟着老师做,还是能跟得上,等着以后自己做毕业设计也有一定的帮助。