第一篇:怎样快速学好PHP技术 PHP学习方法总结
怎样快速学好PHP技术 PHP学习方法总结
来源:扣丁学堂
怎样快速学好PHP技术?我想这应该是大多数参加PHP培训学习PHP的同学比较关心和想要知道的问题,今天扣丁学堂小编就给大家简单谈谈怎样快速学好PHP技术,告诉大家一些PHP学习方法。
扣丁学堂PHP工程师大牛总结了以下几点,供大家学习参考:
第一、抱着良好的心态去学习
学习PHP一定要保持一个良好的心态,切忌怀疑自己的学习方向和成果。
还记得你敲出的第一条命令在一个“黑漆漆”的窗口中显示了什么样的神迹吗?学习PHP绝非是件易事,但请不要怀疑你自己的方向和成果,你所付出的终将会给丰厚的回报。如果一件事情结束的时候你还能保持像你开始那样心态的话,那么你将立于不败之地。
第二、合适的学习方式和教材
很多初学者比较倾向于找一些视频教程来看,其实这真是极好的,但是你得找一些质量高、口碑好,最好是一些大型培训机构内部的视频。但是请不要一直依赖视频,毕竟视频除了没有互动之外,跟上课一样的,所以看视频的唯一缺点就是学习成本的增加,这个成本包括了取得费用和时间成本,所以在你什么都不懂而且看书看“懵逼”的时候先看看视频吧。当你把PHP基础命令用熟练了,理解简单的服务原理并可以独立配置简单的服务的时候,那么就去看书吧!看书可以大大的节省你的时间、金钱成本。
当然萝卜白菜各有所爱,选择什么样的学习方式和学习教材对每个人来说都是不一样的,就跟谈恋爱一样,没有最好只有最合适。
第三、不要抵触“无聊”的英语
基本上你学习PHP或者使用PHP一段时间以后,你会发现与其说是学习PHP操作系统,还不如说是学习如何阅读英文呢。随着知识的深入,你可能会需要经常去搜索一些资料,当度娘不能满足你的时候,你还得去找另一个男人---谷哥。你跟谷哥讲中文当然是可以的,但是有时候谷哥会用中文含蓄的跟你表达“我这里资料还是太少了,你去我哥哥(英文谷哥)那问问?”试问此时如果你不会用英文描述你的问题,或者看不懂外国牛人的回答,那时候真的有种想拿豆腐撞死自己的冲动。而且说实话,语言的学习是非常有意思的一件事情。
第四、找到乐趣以及伙伴
能从枯燥的学习中找到属于自己的乐趣,这是一件很幸福的事情。当然所谓的乐趣也是相对于个人而言的,有些人把尝试新东西当做乐趣,每一次成功输出所产生的小小的成就感也可以是乐趣,当然还有一些恶趣味不是吗?
找到小伙伴也是一件很重要的事情,什么?“那些高手都不理我”。亲,我推荐你先检查自己问问题的态度。OK,自己的态度没问题之后,那么你可以怀疑那些高手是否名副其实,真正的高手永远乐于分享并且伴着强烈的“开源精神”。当然有时候那些大神仅仅会抛出一句“方向”性的回答,但有时候这种答案才是真正优秀的答案,会帮你理清前进道路上的很多岔口。
第五、多动手实践
这一段其实真的没必要多说,所谓熟能生巧,多动手,多练,总归会熟练的,要知道学好PHP绝非一朝一夕之事,时间、知识的积累一定可以将你推上顶峰。
希望以上的几点能帮助到初入PHP行业的童鞋,且学且珍惜,要知道坚持才是恒理,所以一旦选择决定之后,一定要坚定不移的学习下去,那么终会有所收获。
如果你是一个踏实肯干并且比较细心的人,做一定会让你获得物质和精神上的满足,实现自己的价值。赶快加入扣丁学堂教育PHP工程师培训班,PHP工程师及开发课程由总监全程面授教学,大牛领衔主讲,还有大量的PHP视频教程供学员观看学习,喜欢就赶快报名加入吧。
第二篇:快速学习php
Php参考手册介绍
html css 试题
试题1: 请编写如下一个html页面
试题2: 请使用(div+css)盒子经典布局编写如下界面
试题3: 请使用div+css 盒子布局模式编写sohu首页面布局
javascript试题
试题1:
请按下面内容编写一个页面,点页面里的“全选”时,能选中或清除上面的所有水果。选择你喜欢的水果:
□苹果
□桔子
□香蕉
□葡萄
□桃子
□全选/全不选
试题2: 编写一个简单显示和隐藏效果如图所示:
试题3:
请使用javascript相关函数对一个url【http://www.xiexiebang.com
(2)PHP函数
PHP函数的基本介绍、如何自定义函数、PHP页面调用函数、require()、require_once()、include()和include_once()的区别、从内存分析PHP函数调用过程、函数使用需要注意的细节、函数值传递和引用传递的区别。
函数是我们PHP编程最重要的一个知识点,也是进行模块化编程的基础,掌握好函数可以提高代码的复用性、可读性和可维护性。
(3)数组、排序和查找
数组的基本概念、数组的引用方式、数组引用陷阱、与PHP数组相关的函数(count、is_array、print_r、explode等)遍历数组的三种方式、删除数组元素和数组运算符、数组使用细节总结、内部排序法和外部排序法介绍、冒泡排序和快速排序、选择排序和插入排序、顺序查找和二分查找、二维数组介绍和使用。
依据我的经验,我们去找工作的时候,一定会一道关于排序和查询的题,最常见的问题是: 请你写出冒泡排序法,并使用二分查找来查找一个数。在项目开发中,数组是衔接变量和函数的重要数据类型,在MVC开发中,往往需在控制器中将数组分配给视图去显示,在算法中,数组也是变化最为灵活的。
(4)面向对象编程
面向对象编程基本概念、类和对象的关系、如何定义类、成员属性(变量)、如何创建对象实例及如何访问对象属性、对象在内存中存在的形式、栈、堆、全局区、常量区和代码区的关系、成员方法(函数)及使用细节、构造方法(函数)、默认构造方法(函数)、this的基本概念和使用、析构方法(函数)、PHP的对象垃圾回收器、静态变量(类变量)的概念和使用、静态方法(类方法)的概念和使用、面向对象编程的三大特征介绍、面向对象编程-封装、面向对象编程-继承、面向对象编程-多态、访问控制修饰符(public、protected、private)、方法重载(overload)、方法重写(override)、方法重载(overload)和方法重写(override)的比较、PHP魔术函数(__set __get __construct __destruct __call等)和魔术常量(__LINE__ , __FILE__ ,__FUNCTION__等)、抽象类(abstract class)的概念和使用接口(interface)的概念和使用、接口编程和继承的区别、关键字final的使用、常量关键字const 的作用和使用注意事项、面向对象编程之强大的反射机制、面向对象编程之动态代理。
面向对象编程已经成为PHP编程的主流,面向对象编程让程序变得更加强大和灵活,更利于项目的开发和维护。关于面向对象编程 在 传智播客 php视频教程 61讲-78讲,看看什么才是真正的PHP面向对象思想,什么是真正的OOP。
(5)错误处理和异常处理
错误处理的基本概念、PHP处理错误的三种方式介绍、使用die()进程错误处理、自定义错误和错误触发器、错误日志、错误级别介绍、PHP异常处理的基本介绍、PHP异常处理(try throw catch)、自定义异常、如何设置顶级异常处理器、异常使用的规则。
在编写php web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。所以大家需要清楚在PHP编程中如何对错误和异常进行有效的处理,从而保证程序的安全和健壮。
(6)预定义超全局数组
预定义超全局数组-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和中文乱码问题)(7)cookie和session 什么是会话、cookie的基本概念、cookie的curd操作、cookie重要的api介绍、cookie运行原理图解、cookie的实际运用(显示用户上次访问时间、显示用户上次浏览过的商品、)、cookie使用的注意事项、session数据存放的位置和形式、session的curd操作、session运行原理图解、session实际案例-在线购物车、IE禁用Cookie后的session处理方案、session防止用户非法入侵、session配合验证码使用、php.ini 中关于cookie和session配置说明(重点,难点)、自定义会话处理器、Session和Cookie的区别。
Cookie(小甜饼)是客户端技术,服务器把每个用户的数据以cookie的形式 写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。
Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用 户的浏览器创建一个其独享的session文件,当用户再去访问服务器中的其它web资源时,可以从用户各自的session 中取出数据为用户服务。Session和Cookie是最重要的用户行为跟踪技术,尤其是电商,sns项目中运用广泛,因此是我们学习的重点和难点,也是面试笔试的重点。关于cookie和session大家可以参考传智播客 php视频教程 114-121讲
(8)PHP文件编程
文件及文件编程是什么、文件流的基本概念、文件的操作方式、PHP文件编程函数汇总介绍、最常用的13个文件函数、使用文件完成网站计数器、文件上传下载操作-mini版音乐共享网、无限级文件扫描器。
文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保存视频 ,声音...,本章节要求同学们掌握文件的各种操作和上传下载,动态创建和删除目录,文件和无限级扫描文件等,掌握好这些知识点对我们项目开发非常重要。
(9)PHP绘图技术
php绘图坐标系、绘图步骤说明、绘图快速入门、绘图最常用的函数、绘图技术的实际运用—人口分布饼状统计图、专业的报表开发--JpGraph、JpGraph的安装和配置、JpGraph实际应用-网民支持情况统计图、JpGraph中文乱码处理。
如果你使用过财务软件,那你一定看见过各种对财务数据进行统计和分析 的图表,可能是表格,也可能是饼状图、柱状图、曲线图..,简单的说,就是使用图表动态显示数据。而这些图表的显 示都要使用到PHP的绘图技术,绘图技术要求熟练的使用PHP的绘图函数完成项目的需求。能开发一些统计图,非常有实用价值。比如:
推荐学习传智播客 php视频教程
下载地址 http://php.itcast.cn
如何检验自己的学习效果,看看下面的一些面试题 , 看看能完成多少? 如果能正确完成80%,说明这个阶段学到还不错。
练习1: 简述echo(),print(),print_r()的区别?
练习2: 说出PHP的超级全局变量数组,共九种
练习3: 如何在一个php函数中使用具有全局属性的变量,说出两种方式
练习4: 三个小题: 4.1.跳水比赛,8个评委打分。运动员的成绩是8个成绩取掉一个最高分,去掉一个最低分,剩下的6个分数的平均分就是最后得分。使用一维数组实现打分功能。
4.2.请把打最高分的评委和最低分的评委找出来。4.3.找出最佳评委和最差评委。最佳评委就是打分和最后得分最接近的评委。最差评委就是打分和最后得分相差最大的。
练习5: include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和include_once又有什么区别?
练习6: 写出一个能创建多级目录的PHP函数
练习7: 写出一个函数,能递归列出某个目录下的所有文件夹和文件名.练习8: 在防止SQL注入的时候,通、会把单引号、双引号等转义,需要用到哪个函数 练习9: 写出插入排序法和快速排序法代码
练习10: 二分查找的原理是什么? 请写出二分查找函数
练习11: 写出php的public、protected、private三种访问控制模式的区别 练习12: 请写出一个完整的严谨的单例模式
练习13: __set 和 __get 魔术函数是做什么的,在什么时候被触发 练习14: 如何防止对象克隆, 对象克隆会复制 static属性吗? 练习15: 说说strip_tags的作用和用法?
练习16: 如果需要原样输出用户输入的内容,在数据入库前,要用哪个函数处理? 练习17: 如何控制多个进程去并发删除,插入和更新数据库的某张表? 练习18: PHP的安全模式和非安全模式的区别
(转载请注明 传智播客php学院-韩顺平http://php.itcast.cn)
当然,有些学员还给我写信说这样一个问题,如何去检验第一阶段: PHP前端网页开发基础,学习情况, 学习到怎样的水平,再学习下一个阶段比较好, 大家可以做一下下面的测试题,如果你能将下面的题都完成,说明你已经有一定基础,可以学习下一个阶段:(注意:需要独立完成)
html css 试题
试题1:
请编写如下一个html页面
试题2:
请使用(div+css)盒子经典布局编写如下界面
试题3:
请使用div+css 盒子布局模式编写sohu首页面布局
javascript试题
试题1:
请按下面内容编写一个页面,点页面里的“全选”时,能选中或清除上面的所有水果。选择你喜欢的水果:
□苹果
□桔子
□香蕉
□葡萄
□桃子
□全选/全不选
试题2: 编写一个简单显示和隐藏效果如图所示:
试题3:
请使用javascript相关函数对一个url 【http://www.xiexiebang.com、163.com 等)
练习5:计算一个js整数数组的所有元素的和。
练习6:计算一个字符串 , 比如 “abcde中国,你好hello,12345”, 中含有多少个中文字,多少个字母,多少个数字?
练习7:将一个js字符串数组的元素的顺序进行反转。(“3”,“a”,“8”,“haha”)转换为(“haha”,“8”,“a”,“3”)。提示:第i个和第length-i-1个进行交换。不能使用js的reverse()函数。
好,现在我们谈谈第二个阶段应该学习什么内容,如何学习的问题。第二阶段 PHP核心编程
(1)PHP基本语法加强 Apache--directory配置段、一个IP和多个域名绑定的两种方式、HTTP协议入门介绍、Apache逻辑组件介绍、Apache生命周期、PHP运行之时序图、PHP数据类型加强、PHP各种运算符加强、PHP三大流程控制加强、位运算(按位与、按位或、按位异或、按位非、位左移、位右移)、二进制(原码、反码、补码)、PHP版本在线贷款计算器。
这里,我想说明一下: PHP基础语法看似简单,但是也不可大意,有些PHP程序员工作了2年,对PHP运行的原理都不清楚,对Apache的一些重要调优配置也不了解,这样的程序员,在公司是不行的,很难得到提升。所以就一直是一个编码工人,薪资也上不去。
比如面试中经常问到: PHP中一个整数的范围是多少, 小数的能表示的范围是多少? 再比如如何在Apache中配置一个404错误页面,如何给一个主机配置一个域名,具体怎样操作?这样一些基础的问题都必须在这个阶段搞定。推荐大家看 传智播客php视频教程 23讲-45讲 ,有详细到位的讲解。
(2)PHP函数
PHP函数的基本介绍、如何自定义函数、PHP页面调用函数、require()、require_once()、include()和include_once()的区别、从内存分析PHP函数调用过程、函数使用需要注意的细节、函数值传递和引用传递的区别。
函数是我们PHP编程最重要的一个知识点,也是进行模块化编程的基础,掌握好函数可以提高代码的复用性、可读性和可维护性。
(3)数组、排序和查找 数组的基本概念、数组的引用方式、数组引用陷阱、与PHP数组相关的函数(count、is_array、print_r、explode等)遍历数组的三种方式、删除数组元素和数组运算符、数组使用细节总结、内部排序法和外部排序法介绍、冒泡排序和快速排序、选择排序和插入排序、顺序查找和二分查找、二维数组介绍和使用。依据我的经验,我们去找工作的时候,一定会一道关于排序和查询的题,最常见的问题是: 请你写出冒泡排序法,并使用二分查找来查找一个数。在项目开发中,数组是衔接变量和函数的重要数据类型,在MVC开发中,往往需在控制器中将数组分配给视图去显示,在算法中,数组也是变化最为灵活的。
(4)面向对象编程
面向对象编程基本概念、类和对象的关系、如何定义类、成员属性(变量)、如何创建对象实例及如何访问对象属性、对象在内存中存在的形式、栈、堆、全局区、常量区和代码区的关系、成员方法(函数)及使用细节、构造方法(函数)、默认构造方法(函数)、this的基本概念和使用、析构方法(函数)、PHP的对象垃圾回收器、静态变量(类变量)的概念和使用、静态方法(类方法)的概念和使用、面向对象编程的三大特征介绍、面向对象编程-封装、面向对象编程-继承、面向对象编程-多态、访问控制修饰符(public、protected、private)、方法重载(overload)、方法重写(override)、方法重载(overload)和方法重写(override)的比较、PHP魔术函数(__set __get __construct __destruct __call等)和魔术常量(__LINE__ , __FILE__ ,__FUNCTION__等)、抽象类(abstract class)的概念和使用接口(interface)的概念和使用、接口编程和继承的区别、关键字final的使用、常量关键字const 的作用和使用注意事项、面向对象编程之强大的反射机制、面向对象编程之动态代理。
面向对象编程已经成为PHP编程的主流,面向对象编程让程序变得更加强大和灵活,更利于项目的开发和维护。关于面向对象编程 在 传智播客 php视频教程 61讲-78讲,看看什么才是真正的PHP面向对象思想,什么是真正的OOP。
(5)错误处理和异常处理
错误处理的基本概念、PHP处理错误的三种方式介绍、使用die()进程错误处理、自定义错误和错误触发器、错误日志、错误级别介绍、PHP异常处理的基本介绍、PHP异常处理(try throw catch)、自定义异常、如何设置顶级异常处理器、异常使用的规则。
在编写php web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。所以大家需要清楚在PHP编程中如何对错误和异常进行有效的处理,从而保证程序的安全和健壮。
(6)预定义超全局数组
预定义超全局数组-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和中文乱码问题)
(7)cookie和session 什么是会话、cookie的基本概念、cookie的curd操作、cookie重要的api介绍、cookie运行原理图解、cookie的实际运用(显示用户上次访问时间、显示用户上次浏览过的商品、)、cookie使用的注意事项、session数据存放的位置和形式、session的curd操作、session运行原理图解、session实际案例-在线购物车、IE禁用Cookie后的session处理方案、session防止用户非法入侵、session配合验证码使用、php.ini 中关于cookie和session配置说明(重点,难点)、自定义会话处理器、Session和Cookie的区别。
Cookie(小甜饼)是客户端技术,服务器把每个用户的数据以cookie的形式 写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用 户的浏览器创建一个其独享的session文件,当用户再去访问服务器中的其它web资源时,可以从用户各自的session 中取出数据为用户服务。Session和Cookie是最重要的用户行为跟踪技术,尤其是电商,sns项目中运用广泛,因此是我们学习的重点和难点,也是面试笔试的重点。关于cookie和session大家可以参考传智播客 php视频教程 114-121讲
(8)PHP文件编程
文件及文件编程是什么、文件流的基本概念、文件的操作方式、PHP文件编程函数汇总介绍、最常用的13个文件函数、使用文件完成网站计数器、文件上传下载操作-mini版音乐共享网、无限级文件扫描器。
文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保存视频 ,声音...,本章节要求同学们掌握文件的各种操作和上传下载,动态创建和删除目录,文件和无限级扫描文件等,掌握好这些知识点对我们项目开发非常重要。
(9)PHP绘图技术
php绘图坐标系、绘图步骤说明、绘图快速入门、绘图最常用的函数、绘图技术的实际运用—人口分布饼状统计图、专业的报表开发--JpGraph、JpGraph的安装和配置、JpGraph实际应用-网民支持情况统计图、JpGraph中文乱码处理。如果你使用过财务软件,那你一定看见过各种对财务数据进行统计和分析 的图表,可能是表格,也可能是饼状图、柱状图、曲线图..,简单的说,就是使用图表动态显示数据。而这些图表的显 示都要使用到PHP的绘图技术,绘图技术要求熟练的使用PHP的绘图函数完成项目的需求。能开发一些统计图,非常有实用价值。比如:
如何检验自己的学习效果,看看下面的一些面试题 , 看看能完成多少? 如果能正确完成80%,说明这个阶段学到还不错。
练习1: 简述echo(),print(),print_r()的区别?
练习2: 说出PHP的超级全局变量数组,共九种
练习3: 如何在一个php函数中使用具有全局属性的变量,说出两种方式
练习4: 三个小题: 4.1.跳水比赛,8个评委打分。运动员的成绩是8个成绩取掉一个最高分,去掉一个最低分,剩下的6个分数的平均分就是最后得分。使用一维数组实现打分功能。4.2.请把打最高分的评委和最低分的评委找出来。
4.3.找出最佳评委和最差评委。最佳评委就是打分和最后得分最接近的评委。最差评委就是打分和最后得分相差最大的。
练习5: include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和include_once又有什么区别?
练习6: 写出一个能创建多级目录的PHP函数
练习7: 写出一个函数,能递归列出某个目录下的所有文件夹和文件名.练习8: 在防止SQL注入的时候,通、会把单引号、双引号等转义,需要用到哪个函数
练习9: 写出插入排序法和快速排序法代码
练习10: 二分查找的原理是什么? 请写出二分查找函数
练习11: 写出php的public、protected、private三种访问控制模式的区别
练习12: 请写出一个完整的严谨的单例模式
练习13: __set 和 __get 魔术函数是做什么的,在什么时候被触发
练习14: 如何防止对象克隆, 对象克隆会复制 static属性吗?
练习15: 说说strip_tags的作用和用法?
练习16: 如果需要原样输出用户输入的内容,在数据入库前,要用哪个函数处理?
练习17: 如何控制多个进程去并发删除,插入和更新数据库的某张表?
练习18: PHP的安全模式和非安全模式的区别
第三篇:开发技术(PHP)测试题
1、简述静态网页和动态网页的区别,从文件扩展名、使用技术、表现形式、执行位置等进行阐述
答案:
2、简述如何搭建PHP程序的环境
答案:
3、简述PHP语言中,流程控制的分类,及几种代表语句。
答案:
4、简述表单提交过程中,get和post方式的区别
答案:
5、简述session机制的原理
答案:
6、如何在php程序中启动session
答案:
7、代码如下
$arr=array(“I”,“am”,“a”,“student”);
$whole=implode(_,$arr);
echo $whole;
代码输出的结果是:
答案:
8、代码如下
$color=imagecolorallocate($img,0,0,255);
代码实现的功能:
答案:
9、代码如下:
echo “今天是 ”.date(Y年n月j日);
$w=date(w);
$week=array(星期日,星期一,星期二,星期三,星期四,星期五,星期六);
echo $week[$w];
代码实现的功能:
输出今天的日期和是周几
输出的内容是(按考试的日期来输出即可):
2021/12/21 星期二
答案:
10、代码如下:
$pageno=isset($_GET[pageno])?$_GET[pageno]:1;
代码实现的功能:
答案:
11、php的源码是
A、开放的
B、封闭的C、需购买的D、完全不可见的答案: A12、静态网页的执行在浏览器端完成,动态网页的执行在服务器端完成答案: 正确
13、动态页面中不可以出现html、css和javaScript的代码
答案: 错误
14、服务器收到客户发出的静态页面请求之后,只把该页面文件发送给客户浏览器来执行
答案: 错误
15、存放在任意文件夹中的php文件都可以通过localhost/…方式来执行
答案: 错误
16、搭建PHP环境时要先安装php,再安装apache服务器
答案: 错误
17、apache服务默认占用80号端口,不可更改
答案: 错误
18、下面哪项不属于静态网页设计中使用的核心技术
A、HTML
B、DreamWeaver
C、CSS
D、Javascript
答案: B19、下面哪组中列举的技术都属于动态网页设计时使用的核心技术
A、ASP、JSP、SSP
B、JSP、XHTML、PHP
C、JSP、PHP、ASP
D、PHP、ASP、Javascript
答案: C20、动态网页与静态网页的本质区别是
A、静态页面运行后能够查看所有的源代码,动态页面中动态部分源代码则无法查看
B、静态网页任何时候运行内容都相同,动态页面则不然
C、动态页面是在服务器端执行的,而静态页面是在浏览器端执行的D、静态页面中可以包含各种小动画,动态页面不可以
答案: C21、下面各种说法中错误的是
A、在动态页面中可以包含大量的静态代码
B、使用静态页面技术可以实现动态变化的时钟效果
C、动态页面的运行过程通常会包含在服务器端的执行过程和在浏览器端的执行过程两个阶段
D、浏览器请求执行一个静态页面时,服务器先把页面文件执行完毕,然后将结果传递到浏览器端显示
答案: D22、下面关于PHP的说法错误的是
A、PHP是一种服务器端的脚本
B、PHP程序可以在任意环境中执行
C、在PHP文件中可以包含任意的HTML代码和样式的应用
D、使用PHP可以实现注册、登录、在线投票、访客计数等动态页面中需要的各种功能
答案: B23、若PHP文件中包含html代码,下面描述中正确的是
A、服务器将整个php文件发送给浏览器执行
B、服务器将所有代码执行后将结果送给浏览器
C、服务器执行html代码后将执行结果和php代码一起送给浏览器
D、服务器执行php代码后,将指向结果和html代码一起送给浏览器
答案: D24、下面哪组是PHP支持的服务器环境
A、Apache和pws
B、Apache、IIS和pws
C、Apache和IIS
D、只有Apache
答案: C25、若是系统中已经存在了IIS服务,且占用了80端口号,则下面说法正确的是
A、Apache能够成功安装,但是无法启用,只需要修改端口号即可启用
B、Apache无法完成安装过程
C、Apache能够成功安装,且能正常启用
D、以上说法都不正确
答案: A26、下面关于Apache主目录说法错误的是
A、安装Apache之后,必须要将页面文件放在其主目录下才能正常运行
B、安装Apache之后,系统会给其指定默认的主目录
C、Apache的主目录不能随意修改
D、用户可以根据需要修改Apache主目录
答案: C27、搭建apache web服务器(使用phpstduy)之后,默认情况下运行文件时的localhost对应哪个文件夹?
A、apache
B、htdocs
C、,需要使用哪个代码实现
A、onsubmit=“window.open(zhuce.html);”
B、onsubmit=“window.open(zhuce.html);”
C、onclick=“window.open(zhuce.html);”
D、onclick=“window.open(zhuce.html);”
答案: C185、要在表单文本框中显示数组元素$row[title]的值,则代码是:
答案:
echo $row[title];;
解析:
186、判断表单文本框age的数据是否提交到服务器端的方法是______
A、if($_POST[age]==)
B、if(isset($_POST[age]))
C、if($_POST[age]=)
D、if(isset($_FILES[age]))
答案: A187、代码if(document.getElementById(jieshao).value=)用于判断id为jieshao的表单元素值是否为空
答案: 错误
188、使用函数move_uploaded_file()时只需提供一个参数
答案: 错误
189、表单中有文件域元素时,下面哪个说法错误________
A、中method属性取值可以是get
B、中enctype属性取值为multipart/form-data
C、文件域元素需要设置name属性
D、可以有多个文件域元素
答案: A190、存在表单文件域元素fname,系统数组$_FILES[fname]中的内容不包括___
A、上传文件的名称
B、上传文件的类型
C、上传文件的大小
D、上传文件的内容
答案: D191、进行文件上传时,文件相关信息存放在系统数组____中
答案: $_FILES;
192、以下系统数组中可以使用两个下标的是___________
A、$_POST
B、$_GET
C、$_FILES
D、$_SESSION
答案: C193、函数move_uploaded_file()只需要一个参数()
答案: 错误
194、若存在文件域元素名称为f1,$_FILES[‘F1’]是一个数组()
答案: 正确
195、进行文件上传时,需要在form标记中设置属性enctype的取值是
A、multipart/form-data
B、text/plain
C、application/x-www-form-urlencoded
D、以上都不是
答案: A196、关于函数move_uploaded_file(),下列说法错误的是
A、该函数需要指定两个参数
B、第二个参数需要同时指定文件存储的位置和要保存文件的名称
C、第一个参数需要指定文件的临时存储位置和临时名称
D、以上说法都是错误的答案: D197、关于系统数组$_FILES,第二个下标不包含下面哪一项
A、tmpname
B、size
C、name
D、type
答案: A198、关于多文件上传功能中,下面说法错误的是
A、文件域元素中必须添加multiple属性
B、可以同时选择不同文件夹中的文件
C、$_FILES[file1][name]是一个数组
D、文件域元素的name属性取值必须带有[]
答案: B199、$_FILES{“touxiang”][“type”]作用是
A、获取上传文件的类型
B、获取上传文件的大小
C、获取上传文件的名称
D、获取上传文件的临时存储信息
答案: A200、完成文件上传功能,在标签中使用哪个属性设置编码_____
A、enctype
B、name
C、ID
D、action
答案: A201、在A网页上创建了一个Session变量:$____SESSION[“user”]=“张三”,在B网页上要输出这个Session变量的值,应使用。
答案: echo $_SESSION[“user”];
202、在同一个网站的不同文件之间传递数据的机制是__________
A、session
B、cookie
C、application
D、post
答案: A203、下面哪个系统数组不用于接收表单提交的数据________
A、$_SESSION
B、$_FILES
C、$_POST
D、$_GET
答案: A204、关于session机制的描述中正确的是_____
A、用户的session都保存在浏览器端
B、一旦某个页面向session中提供了数据,当前网站中在该页面之后执行的页面文件都可以根据需要从中获取该数据
C、不同网站的页面之间可以通过session机制来传递数据
D、session中存放的是所有用户的共用数据
答案: B205、点击超链接可以向服务器提交数据()
答案: 正确
206、链接打开文件count.php时使用键名uname提交数据“liuhong”,超链接href属性的取值为
A、href=“count.php”?uname=“liuhong”
B、href=“count.php?uname:liuhong”
C、href=“count.php?uname=liuhong”
D、href=“count.php”?uname:“liuhong”
答案: C207、关于session机制的描述中错误的是
A、服务器可通过sessionID来区分各个不同用户
B、一旦某个页面向session管道中提供了数据,当前网站中在该页面之后执行的页面文件都可以根据需要从管道中获取该数据
C、不同网站的页面之间可以通过session机制来传递数据
D、要提供数据的页面和要获取数据的页面都要启用session
答案: C208、下面说法中错误的是
A、变量有生命周期
B、session有生命周期
C、session产生于用户开始访问一个网站时
D、一个session中可以保存多个用户的信息
答案: D209、在PHP中,有两个函数与cookie操作有关。其中____用来设置cookie变量内容, ____用来读取cookie变量内容。
答案: setcookie;$_COOKIE;
210、能够在同一网站不同页面之间传递数据的机制是____,在程序代码开始处启用该机制时需要使用的代码是____
答案: session;session_start();
211、Session可以在不同网站的页面之间传递数据()
答案: 错误
212、mysql数据库中查询数据用select语句
答案: 正确
213、以下说法不正确的是
A、模糊查询使用的关键字是like
B、排序查询asc是降序,desc是升序
C、分页查询使用的关键字是limit
D、mysql如果只安装服务不安装界面也可以正常使用
答案: B214、在用浏览器查看网页时出现404错误可能的原因是
A、页面源代码错误
B、文件不存在C、与数据库连接错误
D、权限不足
答案: B215、安装MySQL数据库之后,默认使用的是根用户root
答案: 正确
216、卸载MySQL时,说法正确的是
A、只要在控制面板中卸载软件即可
B、在控制面板中卸载软件后,清理完注册表信息即可
C、先删除系统盘符下的文件夹,再清理注册表信息,最后卸载软件
D、先在控制面板中卸载软件,然后清理注册表信息,最后删除系统盘符下的相关文件夹
答案: D217、MySQL服务器有一个超级管理员账号,其名称是()
A、admin
B、root
C、sa
D、Administrator
答案: B218、mysqli中返回结果集中记录总数的函数是()
A、fetch_row
B、fetch_assoc
C、num_rows
D、field_count
答案: C219、访问mysql数据库时,用来选择并打开指定数据库的方法是_________
A、mysqli_query()
B、mysqli_connect()
C、mysqli_select_db()
D、mysqli_num_rows()
答案: C220、若是在某次访问数据库的操作中,需要用到如下四个函数
①mysqli_num_rows()②mysqli_select_db()、③mysqli_connet()④mysqli_query()
则使用这四个函数的顺序是___________
A、①②③④
B、②③①④
C、③②④①
D、③④①②
答案: C221、PHP中选择打开数据库的方法是______
A、mysqli_connect()
B、mysqli_select_db()
C、mysqli_query()
D、mysqli_num_rows()
答案: B222、查询用户名和密码信息是否存在时,关于查询结果记录集$result的说法错误的是____
A、该记录集中的记录数只能是0或者1
B、该记录集中的记录数无法预知
C、若记录数是0,说明用户输入的账号或者密码信息有误
D、若记录数是1,说明用户输入的账号和密码信息正确
答案: B223、访问mysql数据库时,从查询结果记录集中获取一条记录的方法是
A、mysql_num_rows()
B、mysql_select_db()
C、mysql_fetch_array()
D、mysql_fetch_Array()
答案: C224、函数mysql_fetch_array()的作用是
A、获取一个数组中的元素
B、从查询结果记录集中获取一条记录并以对象方式存储访问
C、从查询结果记录集中获取一条记录并以数组方式存储访问
D、以上说法都不正确
答案: C225、下面操作MySQL数据库的方法中,哪个返回值可能是false
A、mysql_fetch_array()
B、mysql_select_db()
C、mysql_num_rows()
D、mysql_fetch_Array()
答案: A226、查询数据表时,限制获取查询结果中序号为6、7、8的记录,需要使用的子句是
A、limit 6,8
B、limit 6,2
C、from 6 to 8
D、start 6 to 8
答案: B227、MySQL数据库操作中,Create New Schema命令的作用是
A、创建数据表
B、创建数据表中一个列名
C、创建数据库
D、以上说法都不正确
答案: C228、关于数据库的导入操作,下列说法中错误的是
A、使用的命令是Restore
B、导入过程中可以更改原来数据库的名称
C、导入过程中必须要选择忽略错误选项,否则导入无法完成D、若安装数据库时选择的字符集是GBK,则导入过程中,必须要选择字符集是GBK
答案: D229、关于PHP访问MySQL数据库的各种方法,下列说法中正确的是
A、在使用mysql_connect()连接数据库成功之后,就可以直接访问数据表完成各种操作
B、mysql_num_rows()的作用是获取查询结果记录集中记录的个数,其参数可以省略
C、mysql_select_db()的作用是选择打开指定的数据库,可以只指定一个参数
D、mysql_query()函数只能执行查询语句,不能执行插入、删除、更新语句
答案: C230、假设用户在登录时,输入的用户名信息保存在变量$emailaddr中,密码保存在变量$psd中,查询数据表usermsg中是否存在该用户名和密码信息,需要定义的查询语句是
A、select * from usermsg where emailaddr=$emailaddr or psd=$psd
B、select * from usermsg where emailaddr=$emailaddr and psd=$psd
C、select * from usermsg where emailaddr=$emailaddr and psd=$psd
D、select * from usermsg where emailaddr=$emailaddr or psd=$psd
答案: B231、查询用户名和密码信息是否存在时,关于查询结果记录集$result的说法错误的是
A、该记录集中的记录数只能是0或者1
B、该记录集中的记录数无法预知
C、若记录数是0,说明用户输入的账号或者密码信息有误
D、若记录数是1,说明用户输入的账号和密码信息正确
答案: B232、要获取记录集$result中的记录数,需要使用代码
A、count($result)
B、mysql_num_row($result)
C、mysql_nums_rows($result)
D、mysql_num_rows($result)
答案: D233、MySQL中使用Select语句查询时,要限制返回的行数可使用____子句。
答案: limit;
234、访问mysql数据库时,从查询结果记录集中获取一条记录的方法是__________
A、mysqli_num_rows()
B、mysqli_select_db()
C、mysqli_fetch_array()
D、mysqli_query()
答案: C235、在mysql Administrator界面下,Create New Schema命令的作用是_____
A、创建数据库
B、创建数据表中一个列名
C、创建数据表
D、以上说法都不正确
答案: A236、关于数据库的导入操作,下列说法中错误的是_____
A、使用的命令是Restore
B、导入过程中可以更改原来数据库的名称
C、导入过程中必须要选择忽略错误选项,否则导入无法完成D、使用的命令是Backup
答案: D237、假设用户在登录时,输入的用户名信息保存在变量$uname中,密码保存在变量$psd中,查询数据表user中是否存在该用户名和密码信息,需要定义的查询语句是_______
A、select * from user where uname=$uname or psd=$psd
B、select * from user where uname=$uname and psd=$psd
C、select * from user where uname=$uname and psd=$psd
D、select * from user where uname=$uname or psd=$psd
答案: B238、要获取记录集$result中的记录数,需要使用代码______
A、count($result)
B、mysqli_num_row($result)
C、mysqli_nums_rows($result)
D、mysqli_num_rows($result)
答案: D239、MySQL数据库的根用户是____
答案: root;
240、下面的程序使用mysqli内置函数连接数据库,并将表lyb中的记录显示在网页中,将1234处填写完整
241、下面的程序用来删除记录,当用户单击“删除”超链接时,记录将被删除,将下面1234处的代码补充完整
1.isset 2$_GET[“id”] 3.$id 4.$sql,$conn242、下面的程序是获取到下面表单发送来的信息并按以下格式输出
将下面的服务器端的程序补充完整,在1234处填写合适的代码
$user=$_POST[“user”];
$pwd=$_POST[“pwd”];
$addr=$_POST[“addr”];
echo $user.“您好,您住在”.$addr.”,您的密码是“.$pwd;
243、1)写一个函数,函数名为Trimtit,有两个参数$tit,$n,函数的功能是根据指定的长度截取原始字符串。
如果原始字符串$tit的长度大于指定长度$n,则返回从左端截取的字符串并加“…”
如果长度未超过指定长度,则返回原始字符串。
2)并编写测试代码,使用函数实现字符串的截取。
答案:
function Trimtit($tit,$n){if(strlen($tit)>$n){
echo ”...“.substr($tit,0,$n);
}
else
echo $tit;
}
Trimtit(”tit664848",5);
解析:
244、编写一个函数,输入是5个分数,输出是去掉一个最高分和去掉一个最低分后的平均分。
答案:
function num($a,$b,$c,$d,$e){
$s=array($a,$b,$c,$d,$e);
$max=0;
$min=$s[0];
$abc=0;
for($i=0;$i if($max<=$s[$i]){ $max=$s[$i]; } if($min>=$s[$i]){ $min=$s[$i]; } $abc+=$s[$i]; } $abc=($abc-$min-$max)/5; echo $abc; } num(11,22,33,44,55); 解析: 245、使用for循环,完成1+2+3+4+…+100求和过程,使用变量$sum表示结果并输出。 答案: $num=0; for($i=1;$i<=100;$i++){ $num+=$i; } echo $num; imagecreatetruecolor 输出真彩色图像 246、下面哪一个不是函数imagettftext()的参数_______ A、输出字符的坐标 B、输出字符的角度 C、字号 D、加粗输出的字符 答案: D247、创建真彩色图像,使用的函数是____ 答案: imagecreatetruecolor(); 248、代码imagecolorallocate($img1,255,255,0)的作用是创建____色 答案: 黄; 249、imageline()函数能够在画布中画线,需要四个参数() 答案: 错误 250、用于创建一幅真彩色图像的函数是 A、imagecreatetruecolor() B、imagecreate() C、imagecolorallocate() D、imagefill() 答案: A251、用于为指定图像分配颜色的函数是 A、imagecreatetruecolor() B、imagecreate() C、imagecolorallocate() D、imagefill() 答案: C252、下面哪一个不是函数imagettftext()的参数 A、字号 B、输出字符的角度 C、输出字符的颜色 D、加粗输出的字符 答案: D253、函数imagesetpixel()的作用是 A、在指定位置画一条直线 B、在指定位置设置一个单一像素 C、使用指定的颜色填充指定的区域 D、新建一个基于调色板的图像 答案: B254、若$color表示蓝色,代码imagefill($img,0,0,$color)作用是 A、设置画布$img中坐标0,0的点为蓝色 B、为画布填充蓝色 C、在画布中画蓝色直线 D、输出画布 答案: B255、用于为画布分配颜色的函数是_____ A、imagefill() B、imagecreate() C、imagecolorallocate() D、imagecolor() 答案: D 一、时间和地点: 每周四上午在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第四篇:php课程总结
“;} } $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的东西,学会了很多内容。在这堂课的学习过程中我认真听讲,上机认真练习,遇到难题,自己思考与探索,不断地寻求进步,请教老师和同学,虽然上半年没有学习这门课程,不过老师讲课非常仔细,然后同学们一步步自己跟着老师做,还是能跟得上,等着以后自己做毕业设计也有一定的帮助。
第五篇: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);
}
?>