人人范文网 岗位职责

php岗位职责(精选多篇)

发布时间:2021-07-22 07:44:36 来源:岗位职责 收藏本文 下载本文 手机版

推荐第1篇:php程序员岗位职责

1.设计、开发和建设集团形象网站及其他宣传类网站。2.负责集团网站及其他相关网站的及时更新、功能扩充及改版工作。3.完成领导交办的其他工作。

推荐第2篇:PHP开发工程师岗位职责

1.负责PHP相关产品模块开发工作。2.负责公司业务系统开发、单元测试、系统对接工作。3.负责公司已有网络管理系统的二次开发。4.负责相关系统的设计与编码工作。5.负责研发产品技术文稍的编写工作。

推荐第3篇:高级JAVA、PHP程序员岗位职责

1.负责公产品软件设计、开发、测试和维护工作,主要为C++、java、php。2.负责任务的质量和完整性,包含故障分析、解决、修复,一般文档编制。3.发现和指出项目或计划中的设计问题。4.总结产品研发经验,持续改进产品性能。5.为产品的市场推广提供技术支持。6.报据用户或公司其他部门的要求进行设计修改和设计改进。7.研究项目技术细节,编写相应的说明书。

推荐第4篇:当PHP程序员的岗位职责是什么?

www.daodoc.com

当PHP程序员的岗位职责是什么?

为什么越来越多的90后偏爱互联网行业呢?他们的择业观与80后有哪些区别呢?

01互联网的行业普遍有先进的管理理念

互联网企业员工有许多个性化的需求,比如更为自由的工作时间、更为多元化的精神激励、更为舒适的生活方式等等。针对这种情况,很多互联网企业采取了更为灵活的激励措施,例如弹性工作制、在家办公、自助式福利都是可以考虑的方式。同时还有些企业采取多种形式的中长期激励,如利润分享、股票期权、虚拟股票、业绩单位等。 02丰厚的薪资待遇

根据智联招聘的调查结果显示,2016年应届毕业生期望月薪的平均值为4985元,而实际签约月薪为4765元,较之去年略有下降。从实际月薪来看,实际签约月薪主要位于3000-4999元之间,占比47.8%;其次是2000-2999元和5000—5999元,分别占15.2%和12.7%。对比不同毕业生签约的薪资水平,可以发现,平均月薪最高的为IT/互联网/通讯/电子行业,应届生平均薪资水平为5693元;其次是金融行业和文化/体育/娱乐/传媒,平均薪资水平分别为4685元和4552元;农/林/牧/渔/其他、服务业和文教体育/工艺美术是应届生签约行业中薪资水平较低的行业,月薪均值不足4000元,分别为3500元、3873元和3900元。从不同行业对人才的需求量上看,目前软件工程师、销售总监或经理、产品经理、运营经理等领衔十大紧缺岗位。

四川地处中国大西南,肥沃的土地,丰富的自然资源,悠久的历史和绚烂多彩的少数民族文化,构成了多样性的自然和文化旅游资源。中国作为全球首屈一指的大国,IT培训缺口日益增大。从国家到地方,政府纷纷鼓励年轻人学习一技之长改变命运,成为很多人的首选。那么,2017IT培训前景如何?是不是真如传言中所说的高薪职业永不失业呢?

IT培训这点事,外行看热闹,内行看门道。对于一些相关经验,还是听老师傅的~下面就让小编带领各位去了解一下IT培训吧!

www.daodoc.com

PHP是开发语言的一种,而狭义上说就是能够熟练运用PHP开发语言进行网站开发的工作人员。尽管为了提高开发效率,现在的科技企分工越来越明确,很少出现一个程序员同时用多种语言开发的情况。但是往往一个程序员不是仅仅局限某一种开发语言,或用某一种开发语言来划分的。

为了提高开发效率,现在的互联网企业分工越来越明确,很少出现一个程序员同时用多种语言开发的情况。所谓的PHP程序员属于语言开发类的工作人员,主要负责熟练使用PHP语言进行网站开发。

下面具体来讲一下PHP程序员的岗位职责以及岗位要求。 一:岗位职责:

1、负责协助技术总监进行技术评测,bug处理,代码开发;

2、负责网站数据库、栏目、程序模块的设计与开发;

3、负责根据公司要求进行erp、oa、crm系统等项目开发;

4、按时按质完成公司下达程度开发、系统评测等工作任务;

5、定期维护网站程序,处理反馈回来的系统bug;

6、网站程序开发文档的编写。二:岗位要求:

1、良好的代码习惯,要求结构清晰、命名规范、逻辑性强、代码冗余率低;

www.daodoc.com

2、熟悉Mysql,有较为熟练地掌握mysql语言及编写存储过程、触发器等数据库开发的能力;

3、精通PHP语言,精通CGI标准和HTTP等互联网协议;

4、熟练掌握java、div+c等web前端布局及多浏览器兼容相关技术;

5、英文水平过硬,能基本不借助字典快速阅读英文文档;

6、熟练使用Linux或UNIX系统,熟悉在Linux、UNIX下配置php+mysql的运行环境;

7、有良好的沟通、协调能力和学习能力,具备良好的团队合作精神,对工作积极严谨踏实,能承受较大的工作压力。

“我们不生产技术,而是教育的传授者,更是IT技术的搬运工。欢迎加入成都国信安IT培训基地,我们携手谱写自己的未来!

国信安教育以IT技术相关专业为主要业务方向,自2002年起培养了十余万IT人才,分别就业于:腾讯、华为、卫士通等名企及众多的IT企业。学员在培训期间,还可获得政府给予的相应培训补贴。

成都国信安php培训班由副教学总监,优秀讲师带队并亲自授课,秉承成都国信安一贯的专业品质态度,在课程质量,学生素质,就业服务上相当严格要求,并以学业满意就业为终极目标,打造国内优秀php培训班,感兴趣的同学不妨关注国信安教育基地了解一下吧。

推荐第5篇:php学习心得

php学习心得(适合php初学者)

来源: 发布时间:2009-09-18 发布人: 浏览:30人次字体:[大 中 小]

【1】页面之间无法传递变量 get,post,seion在最新的php版本中自动全局变量是关闭的,所以要从上一页面取得提交过来得变量要使用$_GET[\'foo\'],$_POST[\'foo\'],$_SESSION[\'foo\']来得到

当然也可以修改自动全局变量为开(php.ini改为register_globals = On);考虑到兼容性,还是强迫自己熟悉新的写法比较好。

【2】Win32下apache2 用get方法传递中文参数会出错

test.php?a=你好&b=你也好

传递参数是会导致一个内部错误

解决办法:\"test.php?a=\".urlencode(你好).\"&b=\".urlencode(你也好)

......

【3】win32下的seion不能正常工作

php.ini默认的seion.save_path = /tmp

这显然是linux下的配置,win32下php无法读写seion文件导致seion无法使用 把它改成一个绝对路径就可以了,例如seion.save_path = c:windows emp

【4】显示错误信息

当php.ini的display_errors = On并且error_reporting = E_ALL时,将显示所有的错误和提示,调试的时候最好打开以便纠错,如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示,解决办法是探测或者屏蔽

例如显示$foo,可以if(iet($foo)) echo $foo 或者echo @$foo

【5】Win32下mail()不能发送电子邮件

在linux下配置好的sendmail可以发送,在win32下需要调用smtp服务器来发送电子邮件 修改php.ini的SMTP = ip //ip是不带验证功能的smtp服务器(网上很难找到)

php发送邮件的最好解决方法是用socket直接发送到对方email服务器而不用转发服务器

【6】初装的mysql如果没有设置密码,应该使用

update mysql.user set paword=\"yourpaword\" where user=\"root\"

修改密码

【7】header already sent

这个错误通常会在你使用HEADER的时候出现,他可能是几种原因:1,你在使用HEADER前PRING或者ECHO了2.你当前文件前面有空行3.你可能INCLUDE了一个文件,该文件尾部有空行或者输出也会出现这种错误。!

【8】更改php.ini后没有变化

重新启动web server,比如IIS,Apache等等,然后才会应用最新的设置

【9】php在2003上面安装(ISAPI的安装方法恳请高手指教)

PHP4的php4isapi.dll好像和2003有些冲突,只能用CGI模式安装

步骤一,先 下在一个安装程序,我是装的是:php-4.2.3-installer.exe,你也可以去找最新的版本,在安装php-4.2.3-installer.exe之前保证你的IIS6.0启动了,并能够访问。安装好以后,在默认网站-->应用程序配置

步骤二:点击 web服务扩展 -->新建web服务扩展.

步骤三: 扩展名-->php,然后添加

步骤四:找到php.exe的路径添加上去。

步骤五: 确定就可以了!

步骤六: 选择php的服务扩展,然后点击允许。

【10】

有时候sql语句不起作用,对数据库操作失败

最简便的调试方法,echo那句sql,看看变量的值能得到不

【11】include和require的区别

两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出

据我测试,win32平台下它们都是先包含后执行,所以被包含文件里最好不要再有include或require语句,这样会造成目录混乱。或许*nux下情况不同,暂时还没测试

如果一个文件不想被包含多次可以使用include_once或require_once## 读取,写入文档数据 function r($file_name) {

$filenum=@fopen($file_name,\"r\");

@flock($filenum,LOCK_SH);

$file_data=@fread($filenum,filesize($file_name));

@fclose($filenum);

return $file_data;

}

function w($file_name,$data,$method=\"w\"){

$filenum=@fopen($file_name,$method);

flock($filenum,LOCK_EX);

$file_data=fwrite($filenum,$data);

fclose($filenum);

return $file_data;

}

【12】iet()和empty()的区别

两者都是测试变量用的

但是iet()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空 如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示

如果一个变量被赋空值,$foo=\"\"或者$foo=0或者 $foo=false,那么empty($foo)返回真,iet($foo)也返回真,就是说赋空值不会注销一个变量。

要注销一个变量,可以用 unset($foo)或者$foo=NULL

【13】mysql查询语句包含有关键字

php查询mysql的时候,有时候mysql表名或者列名会有关键字

这时候查询会有错误。例如表名是order,查询时候会出错

简单的办法是sql语句里表名或者列名加上`[tab键上面]来加以区别

例如select * from `order`

【14】通过HTTP协议一次上传多个文件的方法

有两个思路,是同一个方法的两种实现。具体程序还需自己去设计

1,在form中设置多个文件输入框,用数组命名他们的名字,如下:

这样,在服务器端做以下测试

echo \"

\";

print_r($_FILES);

echo \"

\";

1,在form中设置多个文件输入框,但名字不同,如下:

在服务器端做同样测试:

echo \"

\";

print_r($_FILES);

echo \"

\";

推荐第6篇:PHP学习心得

PHP学习心得

先说学习PHP有什么用处吧,毕竟学习前应该是对所要学习的东西有所了解,才会更有兴趣去学习它。

学习PHP主要是用来开发web站点,也就是网站,它和asp、java等语言类似,都是运行在服务器上的程序,用来动态地为用户提供网页服务。

学习了它,现实里可以用它赚钱,方法是自己接活儿,或者找PHP程序员的工作,或者你也可以用PHP来自己制作网站,制作了网站后,当然也可以赚钱。

如果感觉自己在学习php方面无从下手,那么有一套很好的教程可以让你摆脱这种心理,你去看看,有一套张老师讲的教程,循序渐进而且有系统。所有的都是从实例出发,最重要的是免费。

再有一点重要的是,在学习前最好有个目标,就是你学这个你想用来做啥,比如我就先构思个网站,然后在学习中解决各类问题。

另外最重要的就是要有毅力

我英文不好能学习吗?回答是YSE

我数学不好能学吗?回答是YES

我没有基础看这个视频学习能学吗?回答也是YES

我没耐心能学吗?回答是NO~

学习php只是一部分,html、c、js是都要学的,而且是必须的,但是这些东西尤其是js很像php,其它的就太简单了,没什么难的。如果更好的学习建议可以先看看些 HTML 和 SQL 的基础。

另外w3school也是个不错的地方,http://.cn/php/index.asp。里面有详细的手册和资料。

开始学习的时候,尤其是最开是下手编程很艰难,可以上网找些源代码来琢磨,但是一定要自己动手写,不能光看不练。PHP最大的优势优势就是源代码十分多,不像JSP那样很多封包的,大家一定要好好利用啊。

其次,就是大家可以加些群和论坛,有问题和高手请教下,说不准会茅塞顿开,一个人闭门造车还是很累的。俗话说,独乐乐不如众乐嘛,

本人也是个初学的菜鸟,希望以上对大家有些帮助。

推荐第7篇:php试题

1.写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名

例如: http://www.daodoc.com/,如何得到它的内容?($1分)

19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)

12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)

13、谈谈asp,php,jsp的优缺点(1分)

14、谈谈对mvc的认识(1分)

15、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pa,email)(2分) 16.请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分) php程序员站

17.在PHP中error_reporting这个函数有什么作用? (1分) 18.请写一个函数验证电子邮件的格式是否正确 (2分) 19.简述如何得到当前执行脚本路径,包括所得到参数。(2分) 20.如何修改SESSION的生存时间.(1分)

21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)

22、JS的转向函数是?怎么引入一个外部JS文件?(2分)

23、foo()和@foo()之间有什么区别?(1分)

24、如何声明一个名为”mycla”的没有方法和属性的类? (1分)

25、如何实例化一个名为”mycla”的对象?(1分)

26、你如何访问和设置一个类的属性? (2分)

27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)

28、GD库是做什么用的? (1分)

29、指出一些在PHP输入一段HTML代码的办法。(1分) 30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分) (a) fget() (b) file_open()

(c) fopen()

(d) open_file() www.daodoc.com

31、下面哪个选项没有将 john 添加到users 数组中? (1分) (a) $users[] = „john‟;

(b) array_add($users,‟john‟); (c) array_push($users,„john‟); (d) $users ||= „john‟;

32、下面的程序会输入是否?(1分) <?php $num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num; ?>

33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分) 表名User Name Tel Content Date 张三 13333663366 大专毕业 2006-10-11 张三 13612312331 本科毕业 2006-10-15 张四 021-55665566 中专毕业 2006-10-15 请根据上面的题目完成代码:

$mysql_db=mysql_connect(“local”,”root”,”pa”); www~phperz~com @mysql_select_db(“DB”,$mysql_db);

34、如何使用下面的类,并解释下面什么意思?(3) cla test{

function Get_test($num){ $num=md5(md5($num).”En”); return $num;

}

}

35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分) 表名User Name Tel Content Date 张三 13333663366 大专毕业 2006-10-11 张三 13612312331 本科毕业 2006-10-15 张四 021-55665566 中专毕业 2006-10-15 (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中 (b) 请用sql语句把张三的时间更新成为当前系统时间 (c) 请写出删除名为张四的全部记录

36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)

37、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)

38、写出以下程序的输出结果 (1分) <? $b=201; $c=40; $a=$b>$c?4:5; echo $a; ?>

39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分) 40、取得查询结果集总数的函数是?(1分)

41、$arr = array(„james‟, „tom‟, „symfony‟); 请打印出第一个元素的值 (1分)

42、请将41题的数组的值用‟,\'号分隔并合并成字串输出(1分)

43、$a = „abcdef‟; 请取出$a的值并打印出第一个字母(1分)

44、PHP可以和sql server/oracle等数据库连接吗?(1分)

45、请写出PHP5权限控制修饰符(3分)

46、请写出php5的构造函数和析构函数(2分)

47、以下请用PHPMYADMIN完成

(一)创建新闻发布系统,表名为meage有如下字段 (3分) php程序员站 id 文章id title 文章标题 content 文章内容

category_id 文章分类id hits 点击量

(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分) comment_id 回复id id 文章id,关联meage表中的id comment_content 回复内容

现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面

文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0

(三)上述内容管理系统,表category保存分类信息,字段如下 (3分) category_id int(4) not null auto_increment; categroy_name varchar(40) not null;

推荐第8篇:PHP复习资料

PHP复习资料

填空题

1.在PHP中,加入注释的方法很灵活,单行注释有 // 和 # 两mysql可以方便地对数据库进行各种操作。

13.在continue和break语句中,

名词解释

1. 构造函数: 在类中定义的、

种方法,多行注释可以使用“/* */”实现。

2.在PHP中,变量以符号 $ 开头,该符号告诉PHP这是一个变量。

3.在PHP中,使用关键字function来定义自己的函数,可以有传回值也可以无传回值。 4.在类中,与类同名的方法称为构造方法,该方法在创建类的实例时调用。

5.strrev()函数是用于将一个字符串翻转,如strrev(“elppa”)的结果为”apple”。

6.strlen()函数用于计算字符串的长度。

7.在PHP中,函数nl2br()可以将字符串中的换行符“\\n”替换为HTML中的“”标记。 8.在打开一个文件后,可以使用fputs()和fwrite()这两个函数将数据写入到文件中。 9.在PHP中,向数据库发送SQL查询有两个函数:分别是mysql_query()和

mysql_db_query()。

10.授权语句”grant select on eshops.customers

to

lbs@llocalhost”,表示授予本地主机中的用户数据库eshops的customers表具有select权。

11.MySQL数据库的最大魅力在于它是自由软件。

12.mysql是MySQL自带的一个标准数据库客户端程序。使用

continue语句用来跳出本次循环,break语句用来跳出当前循环。

14.在用户自定义函数中使用的PHP变量默认被设为局部变量,它只能在函数内部使用。 15.mysql_num_rows()函数用于获取总行数,mysql_num_fields()函数用于获取总字段数。 16.与mysql_fetch_array()函数相比,mysql_fetch_row()的执行速度更快。

17.mysql_data_seek()函数用于将记录指针移到指定的行。18.PHP函数mysql_list_dbs()与SQL语句show databases等效。

19.MySQL是真正支持多平台的,如Linux、OS/

2、MacOS、Windows94/98/NT/2000等,使跨平台成为可能。

20.为了判断文件指针是否指向文件结尾,可以使用feof()函数。 21.为了获得当前时间“2007年12月15日”,可以使用getdate()函数来实现。 22.变量的作用域就是它的有效范围,”global”是用来声明全局变量的。

23. 数学函数dechex()是用于将数从十进制转换成十六进制。 24.在PHP中,引用头文件可以使用require()和include()这两个函数,我们可以在循环中使用include()函数,将不同文件的内容包含进来。

与类同名的方法,该方法在创建类的实例时会自动被调用。

2. 静态变量: 仅存在于函数

中的变量为静态变量。和局部变量一样,它仅作用于某个局部范围,但是当函数执行完时,静态变量的值不会丢失,这一点和全局变量相同。

3. 变量的引用赋值: 变量的

引用赋值就是指引用变量的地址,导致两个变量指向同一个内存地址,使用对一个变量值的修改会导致对另一个变量值的修改。 4. PHP:

PHP

PHP:HyperText Preproceor的缩写,其中冒号前面的PHP又是Personal Home Page的缩写。PHP是一种开放源代码的、免费的、嵌入式服务器脚本语言,它混合了C、Java、Perl等的语法,并加入了自创的一些新语法,语言的整体风格类似于C。 5.

简答题

1.谈谈你是如何理解对象和类,以及两者的关系。

答: (1)对象可以是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。每个对象都有自己的状

态和行为。

(2)类是具有相同或相似性质的对象的抽象。类具有属性,它是对象状态的抽象,用数据结构来描述;类具有操作,它是对对象行为的抽象,用操作名和实现该操作的方法来描述。

(3)对象和类的关系:对象的抽象是类,类的具体化就是对象,也可以说类的实例就是对象。

2.请解释下面的程序并给出程序的运行结果。 <?

function makeup($type=”果汁”){echo “给我一杯

$type!”;

}

echo makeup();

echo makeup(“可乐”);?>

答: 第一步:在该程序中首

先定义了一个makeup()函数,并为函数的参数$type设置了一个默认值“果汁”。

第二步:在第一条输出语句中调用该函数时,由于未提供参数,所以就使用默认值“果汁”,输出结果为“给我一杯果汁!”。

第三步:在第二条输出语句中再次调用该函数时,由于提供了参数值“可乐”,所以不会使用默认值,输出结果为“给我一杯可乐!”。 该程序的运行结果为: 给我一杯果汁! 给我一杯可乐!

3.使用MySQL数据库时,如何在命令行界面实现数据的导入与导出?请各列举两种方法,并举例说明。

答: 导入:将D盘eshops.sql文件中所有数据导入数据库test中

方法一:使用source命令 语法:source 文件名; 举例:use test; source “d:\\eshops.sql”; 方法二:使用客户端程序mysql

语法:mysql 数据库名

举例:mysql –u 用户名 –p test

导出:将数据库test中的所有数据导出到D盘eshops.sql文件中

方法一:使用“select „into outfile”语句

举例:select * from test.表名 into outfile ‘d:/eshops.sql’;

说明:每一张表数据的导出都要用一条选择语句来实现

方法二:使用mysqldump工具

语法:mysqldump [开关参数] 数据库名 [表名] >文本文件名

举例:mysqldump –u 用户名 –p test >d:\\eshops.sql; 4.连接数据库服务器的PHP函数有两个,mysql_connect()和mysql_pconnect(),它们有何区别?

答:

mysql_connect()和

mysql_pconnect()函数都可以用来连接数据库服务器,两者的语法基本相同,区别在于:

(1)当数据库操作结束后,mysql_connect()函数建立的连接将自动关闭,而mysql_pconnect()函数建立的连接将继续存在,是一种持久的连接;

(2)mysql_pconnect()函数在每次连接前都会检查是否使用同样的主机名、用户名和密码连接,如果有,则直接使用这个连接号;

(3)mysql_connect()函数建立的连接可以用mysql_close()函数来关闭,而用mysql_pconnect()函数建立的连接不能用mysql_close()函数来关闭。

论述题

1.请谈谈学习网页设计语言PHP后的心得体会。答:

推荐第9篇:PHP程序员

**的个人简历

个人资料

姓名: **电子邮件: ******@qq.com

名族: 汉出生日期: 1991/1/3

学历: 本科居住地址: 深圳福田

性别: 男手机号码: 186***7739

4求职意向

到岗时间:即时

期望职位:php程序员

工作性质:全职

专业技能

1、熟练掌握PHP,HTML,DIV+CSS,Javascript,Ajax,jQuery等Web开发技术。

2、熟练使用PDO、MySQL方式操作MySQL数据库系统,熟悉MySQL事物及存储过程。

3、熟悉HTML,DIV+CSS前台页面技术和XML的使用。

4、熟悉网页静态化、Smarty缓存,thinkPHP缓存,掌握Web防SQL注入。

5、孰悉MVC架构开发思想模式,熟练使用Smarty模板,ThinkPHP框架,ZendFramework框架。

6、熟练掌握Zend Studio, Dreamweaver,Notepad++, EclipsePHP等常用Web开发工具;

7、了解Linux基本操作。

项目经验 项目一

项目名称:地球新闻网

软件环境:

开发工具:

项目描述: linux+apache+mysql+php Zend Studio 1.该项目是一个集各种新闻的网站。 2.前台采用div+c,javascript等

技术进行页面布局,Javascript和Jquery技术制作下拉菜单、表单验证、

复选框等效果。3.后台采用全面向对象开发,良好的运用了MVC三层架

构模式。

责任描述:独立开发

项目体会:通过开发这次项目,使我对制作一个网站有了一个全面的了解,也同时增

加了我的技术能力;通过该网站使我了解只有想不到,没有做不到。同时

也想到在这个发展迅速的社会,我们只有不断努力学习新的技术才能满足

客户的要求。

 项目二

项目名称:聚焦购物商城

软件环境:

开发工具:

项目描述: windows+apache+mysql+php Zend Studio 8.0 该项目是一个大型的网站商城,采用thinkPHP主流框架开发。

前台包括:商品列表、搜索、商品详细页、注册、登录、购物车、会员

中心、评论等。后台有:商品管理、订单管理、会员管理、商家管理等。

满足用户购物流程的各种需求

责任描述: 负责完成了MySQL数据表、字段、索引的分析与创建,主页的图片轮换,商品详细

页,购物车模块,登录注册等功能,以及后台商品管理模块。

项目体会:通过此次项目的实战,让我对thinkPHP的掌握更加深刻,同时给我感觉

的是使用模板的开发速度之快,更实现的HTML的代码与PHP代码的分

离,使得拥有更好的扩展以及维护。

工作经验

2012/8—2013/4业聚医疗器械(深圳)有限公司技术员 工作感想

之前的公司主要是生产和研发介入性医疗器械的一家公司,我的工作任务主要从事公司导管支架的研发,研发多种不同尺寸型号的球囊扩张导管。在我的工作中,使我学到了很多东西, 让我变得更加细心,做事情更加注重细节,更有时间观念等等。

教育经历

 2013/4—2013/8达内PHP培训php程序员主要学习了:linux系统常用操作命令,HTML/CSS,Javascript/Jquery/Ajax的前台技术,学习了用Linux系统和Windows系统开发项目,学习了Smarty模板,

Zendframework,thinkPHP框架的使用,学习了DEDECMS二次开发。

在学习的过程中,自己独立完成了一个小项目《地球新闻网》,和同学合作完

成了一个商城网站《聚焦购物》,通过这两个项目的实战,为我以后的工作打

下了坚实的基础。

 2008/9—2012/7湖北信息工程专修学院电子商务本科主要学习了:计算机应用基础,管理学,电子商务概论,网页设计与制作,电子商务法,

商务沟通与谈判及商业职业道德专业课程,安全教育等课程。

通过这些课程的学习,使我对电子商务系统建设与管理打下了良好的基础,

同时也使我拥有较强的沟通能力和职业道德水准。

个人评价 1.本人细心,乐观积极心态,吃苦耐劳,勇于挑战自我,热爱学习,喜欢总结;

2.具备良好的团队精神,能很好的与团队协作开发,有良好的沟通能力,喜欢交朋友;

3.性格开朗,阳光,喜欢篮球,游泳,羽毛球等体育运动。

推荐第10篇:PHP实验报告

PHP实验报告

实验内容:php操作数据库

实验步骤:首先在Mysql,text数据库中建立一个t_stu的表。

2.新建conn.php文件,链接Mysql数据库,并方便接下来的包含和引用。

3.新建index.php文件,连接数据库,然后再设计页面插入一个表格,将建立的学生表的、字段、类型都加入到表中;然后在每个位置的相应出编写一个PHP程序,从而将数据库中的相应信息导入进来。(其中可以添加边框颜色以及背景颜色,使页面设计更加美观)

4.设置每页显示数据数进行分页操作,新建page.cla.php文件,设计分页php程序,并在index.php中引用,部分代码如下:

5.在设计表格中添加删除修改操作,实现对学生信息的即时修改,在点击修改后跳转到修改页面,新建upddate.php文件,设置更新php程序。代码如下:

6.新建delete.php

文件,实现删除的操作,代码如下:

7.新建add.php文件,实现增添学生的功能。8.测试程序

在ie中输入127.0.0.1/index.php,运行结果如下:

点击增加学生:

点击修改

点击删除:删除一条学生信息。 以上为全部实验报告。

第11篇:PHP作业

PHP作业范例

会员管理-注册会员截图。完成了一个注册用户的申请过程。

1、【点击注册为会员】

2、【购书卡信息】

3、【会员信息】

4、提交后

用到的数据库SQL语句。先建立一个数据库: `member` 然后把下面的语句粘贴到下面所示界面。

-- phpMyAdmin SQL Dump -- version 2.11.9.2 -- http://www.daodoc.com\', \'xswedc\', \'514015\', \'021-12345678\', \'0000-00-00 00:00:00\');

第12篇:php框架

Zend Framework

Zend Framework 在开发社区中有大量的追随者,它致力于Web 2.0风格的程序。因为它众多的追随者组成的活跃用户开发的扩展支持,Zend被称为“The PHP Company”。Zend是一个,也可能不是,今天可用的最受欢迎的PHP开发框架。它有健壮的特征能够支持协作开发,它需要一些PHP的额外知识。

Symfony

Symfony 是为那些更加职业的主要开发企业级程序的开发者而准备的——特别是 Askeet 和 Yahoo! Bookmarks。这款开源PHP开发框架有着丰富的特性,做起这些来绰绰有余,它主要的缺点是比其他的框架略微慢一些。

Canphp

Canphp是一个中国开源的php框架,主要的设计理念就是为了追求简单,减少php初学者的学习成本,而且追求高效率,模版类不提供其他标签,直接应用php的源代码,还有它是微内核设计,移植性强,松散耦合等特点,能集成到你任何一个系统里面。其中集成的http类相当的强大,采集图片速度相当的快,为什么这样呢?因为适用了模拟异步多进程的原理。

Codelgniter

Codelgniter 以它的简单易用,性能和速度而闻名。与 Symphony 不同,这款PHP开发框架对于共享主机的用户而言很理想,如果你想有一个小型覆盖面的框架。它提供了简单的解决方案,还有扩展的知识库,通过视频教程,用户指南和wiki来提供支持。

Seagull

Seagull 是一个良好的PHP开发框架,可以用来开发Web,命令行和GUI程序。这是一款无论对初学者还是职业程序员而言都及其简单的开发框架。对于初学者,Seagull提供一套包含样例程序的库,经过简单修改就能符合你的要求,而对于专家级程序员,Seagull提供了一整套设置选项——包括最佳练习,标准的和模块化的代码库——来快速简单地构建Web程序。Seagull有一个活跃的用户社区以及丰富的支持文档。

InitPHP

InitPHP是一款轻量级的php开发框架,采用分层体系架构,适合大中型网站架构。提供丰富的library类库,以及简单的框架扩展机制。InitPHP还提供详细的开发文档,可以让您在使用该框架的时候更加简单实用。InitPHP实现了抽象DB层、分层体系架构、缓存无缝切换机制、简单模板机制、多模型部署机制、强大的安全体系,是您快速开发php应用的利器!

第13篇:PHP缺陷

PHP平台的缺陷

Nikolaj Cholakov

摘要:

PHP网站设计平台在最近几年变得非常流行。PHP的简单,易学,易用让很多新手都愿意接受它。然而,PHP也有一些严重的缺陷,到底哪些是会导致PHP被改写的缺陷呢?这篇文章是针对PHP缺陷可能引起的一些潜在的问题, 和一些已经发生的问题而写的。同时,也将提出一些促进这个平台改进的观点。

关键词:PHP,PHP6,缺陷,网站设计

简介

PHP始于拉斯姆斯·乐道夫1994年创建的一套小的通用网关接口,在经过几代改动之后,如今的PHP成为了最流行的网站设计平台。有许多客观的原因使它如此受欢迎。PHP是非常简单的,易学易用的,开源发布的独立平台。PHP能够很容易的支持当下任何种类的Web服务器。

PHP脚本能被非常快速地执行,并且PHP资源在Web上有很大的自由空间。 同时,PHP平台也有许多严重的缺陷,其中的一些并没有被广泛的关注过。忽视这些缺陷将导致低劣的程序设计。另一个严重的问题是基于PHP的Web应用是有安全风险的,主要是由于很糟糕的程序设计和PHP典型程序设计技术的不恰当运用。

正文

大部分缺陷的产生,是因为PHP缺少可靠和一致的初始设计。为了克服这个问题,PHP的开发团队几乎都会为每个新的发行版本更改说明书。因此,PHP平台被不断地改进,但是,一些向后兼容的问题也显现了出来。当PHP被当做LAMP(Linux-Apache-MySQL-PHP)中的一部分运行时,一些问题就体现出来了,

我们根据缺陷的来源和范围,将它分成了几类:典型的问题和缺陷,异常的PHP环境。 1.来自于语言初始设计和概念的问题。

PHP语言的初始设计目的是为Web服务器脚本提供一个非常简单易用的环境。一些脚本语言的典型特征肯定会使PHP面临更严峻的挑战。

1.1.PHP没有严格的变量类型。

在PHP语言中,没有严格的数据类型,变量必须在使用之前被申明。这样一来,变量的使用和管理就变得很复杂了。这是对那些经验不足的程序员来说是一件糟糕的事情,这很可能导致一些漏洞的产生,而且还很难发现他们。遗憾的是,这个问题不大可能在PHP中解决,因为这要改变PHP语言最基本的设计思想。

1.2.注册全局变量。

PHP这种程序设计技术使参数的请求操作变得简单,给程序员带来了方便。然而,当\"register_globals\"操作随着HTTP请求变量注入到脚本时,这种特征的益处并不比它的缺陷造成的风险更大。另外一个事实是PHP不能要求变量初始化,这种特性给了黑客理想的机会,将恶意代码用像cro-site脚本文件注入这样的技术渗入脚本中。这种来自于全局变量自动注册的威胁是众所周知的。很令人遗憾,即使最近的发行版本-PHP5也包含有这种特性。直到PHP6发行,全局变量自动注册的功能才被取消。

但是这本是很久以前就应做出的改变。现在很多的应用都依赖于这种特性,在PHP6.0平台上也将要遇到同样的问题。也许有一个好的方法,那就是限制include()和require()的功能,只允许使用本地文件,并以此来避免远端文件的注入。需要进一步说明的是,要建立一种方法来强迫用户无论何时都要过滤输入和输出,这将有助于避免SQL注入和其他各种常见的问题,这也将是一个非常受欢迎的改变。

1.3外设的可靠性

为了执行一些重要的任务,PHP需要依赖外部设备,这将削弱平台的独立性和可移植性。一个很好的例子就是,当一个实时的工作需要被基于PHP平台的Web应用程序执行:

例如,一个通高邮件必须在每晚的20:00被准时的发送给系统管理员,或者每三个小时都必须执行系统状态检测。这些工作仅仅使用外部工具就能够执行,这是以LAMP为代表的Linux克隆服务器典型应用。这个克隆服务器提供了很好的接口和足够的功能。

它的缺陷是,如果很多的Web应用程序都在同一个服务器上使用克隆服务器,这必然将互相干扰。转移Web应用程序到另一个服务器上则必将带来兼容性问题。

1.4导致低劣的程序设计

PHP脚本并不是最优化的预编译程序。每个PHP对象都有一个字节的头部,程序每次运行的时候都不得不从语法上从头进行分析,除非Zend最优化或者开销被用了。这就是为什么PHP没有鼓励使用模块化程序设计法的原因。

它的对象向导模块也不是非常的可靠。PHP平台的主要开发者认识到PHP类的列示要比Java花费了更多的时间。

PHP最大的一个优点就是速度,但是程序员不能快速有效的使用对象向导。 因此老式的程序扥设计风格就被重新使用了,这对小的简单的项目也许是一个好的解决方法,但是用在高级别的项目上则完全不能令人满意。事实上,PHP并不是公司级应用程序的最合适选择,因为它只是关注Web的发展。

PHP是一个很容易抄袭的语言。许多的初学者能立即使用数据库功能创作一个简单Web应用程序,而不用花时间去学习那些像HTML,HTTP,SQL,关系数据库和对象向导等等这样基础的必需的规范。这样无知的做法将导致你只有很糟糕的技术,这也将会导致你很难战胜后来的那些问题和失败所带给你的痛苦。

从C语言这样如此变通的语言遗传来的一些东西,使PHP能产生不同的编程风格,于此不同的是一些像Python这样死板的语言。

事实上的问题是,开发者想方设法使用来自不同源的,并且与自己最初的代码相比是组织好了的完整的代码。

系统管理员可以使用系统中的很多参数对PHP配置进行管理,可以通过在php.ini中设置适当的参数来改变解析器的行为。一些管理员可以熟练的操作项目,但是有一些管理员不行,这就是为什么成型的配置会损害可移植性。让我们把\"short_open_tag\"参数作为例子来考虑一下。如果它是开启的,那么PHP脚本的开始标签就不仅能使用\"<?php\"作为主要的标准符号,而且也能使用像在XML里一样的\"<?\"。当应用程序中既使用XML又使用了PHP时,这可不是个好主意,因此大部分服务器上都将这个功能设置为禁用了。在这样的服务器上还有一些使用了短标签的应用程序不能正确的定位到运行。甚至在PHP官方的文件中,包括在每个发行版中,都标注着【8】:\"为了便于移植,重新分配代码,请确定没有使用短标签。\"那么,主要做是为什么呢?

2.命名规则和函数库兼容性。

PHP的命名规则看起来和Java有些相似,直到了解了令人厌烦的小写和大写字母的用法才知道这是不一样的。PHP的变量和函数名必须使用小写字母开头,类名必须使用大写字母开头,常数名必须由完整的大写字母组成。在PHP中是很愚蠢的一条就是:变量名是区分大小写的,但是函数名是对大小写不敏感的。没有合理的理由可以解释这是为什么。这会很容易的出现一些很严重的漏洞,例子如下所示:

<?php FoR( $count = 0 ; $count \'); } ?>关键词\"for\"和函数名echo是不区分大小写的,因此循环应到一直工作直到结束,而不管其它情况是否发生。变量$count和$Count在解析器看来是完全不同的,因此将会产生死循环,这将会导致客户的浏览器暂停响应。

PHP库的结构还没有充分的发展,并且缺乏兼容性。首先,所有的函数的命名规则都不总是一致的。情况是,不友好的函数在他们的名字中的不同位置有\"i\"或者\"case\",例如\"strripos()\"和\"strnatcasecmp()\"。在系统中没有明显的强调对不强调,例如:base64_encode( ) vs urlencode( ), 或者strip_tags( ) vs stripslashes( )。

更多关于矛盾的例子可以在变函数的前缀和有序参数中找到。

PHP差不多有4000个函数。 其中的一些函数有着很少见的作用,例如phpinfo( ),而且有一些函数还和其他一个或几个函数都有着相同的功能。换句话说,有很多函数执行者相同的功能,因此程序员必须为实际要求选择更合适的函数。列表1描述了PHP和Perl之间一些有相同功能函数数量的对比,数据来源【6】。事实上是,一个好的观点是PHP提供了非常多的有相似功能的函数,而另一个观点则是程序员对此稍微有些难以理解。

表1 很多的的数据库访问函数(例如:mysql_*type 函数)对于数据库来说不是标准化的。PESR(PHP扩展和应用库)提供了一种DB模式,这是种给出了唯一接口的数据库访问模式,但是这种模式有它自己缺陷,这是一种代码的附加层,会减慢运行速度,产生错误的可能性也会增加。

最后,PHP不能使用空名字,因此函数必须有前缀来指出他们的源,这可不是一个好的解决方式。此外,更严重的是命名冲突的概率必然会大大增加。

3.差错处理。

PHP为程序的文本错误处理提供了\"set_error_handler( )\"函数,这个函数运行时可以用来定义一个处理错误的方法。处理错误的关键之处是找对方向,而且需要异常操作的支持。除此之外,用一个安全的方法处理错误,在某种特定的情况下执行相应的代码段,这都是很重要的。

直到PHP5发行,异常处理才被引用,因此是不可能和早期版本相兼容的,但是这不是个大问题,因为早期版本缺少对对象向导支持。

PHP中的用户异常可以很容易通过内置的例外类确定,此外异常处理用一种典型的方式被执行,就像在所有会产生异常的语言中做的那样。PHP中异常处理的缺陷是每当代码出现问题时,解析器不能自动的丢弃异常事件。这有两个例子,都是默认为丢弃异常的,例如【9】:  用对象构造的代码:

 使用这种代码所产生的问题,例如L:使用MySQLi类连接MySQL数据库时会产生严重的问题。

在这些事之后,大量的论述被人们抛出,但是直到PHP6发行,情况也没有任何改变。PHP中存在大量的缺陷的确是个事实,例如:和老版本不相容,代码的可读性很差,但是毕竟它的优点要大于它的缺陷,因此它依然是做Web程序设计的首选。

4.PHP中缺少函数。

PHP提供了各种功能的函数用来在现代化的平台上来建立Web应用程序。但是,PHP中仍然缺少一些基本的函数,而且大多是缺少像事件和多线程函数这样重要的函数。

4.1.事件。

PHP一个很严重的缺陷是缺少事件。事件允许程序员给对象附上新的行为。 当遇到某些条件时,事件允许程序员灵活的给对象附上新的行为。这些条件是作为一个事件向外部声明的。对象向导语言支持的事件稍微有一些不同。他们其中的一些使用简单的方法,像Javascript或者VB.net,其他的则是定位到高级层次的。总之,建立一个构架来模仿事件也是可行的。

事件的本义包含了对象的实例化以及附加上的事件处理器。当事件联系被提升时,事件处理器将被执行。因此在PHP中支持事件的基本结构需要被建立,这个当前事件必须包含一个类,一个事件的集合,一个事件的处理,一个事件处理的集合,一个允许的事件的类,有意的使用事件。

如果在PHP中能找到支持用户自定义的事件是多么好的一件事情【7】。

4.2.多线程操作。

大部分有代表性的Web服务器都使用的多线程的多核CPU。合理的配件价格使得小公司趋向于使用多核的Web服务器。多线程是一种允许应用程序更有效的利用他们新特性的方法。这在复杂的逻辑项目开发工作中也是一个必须的工具。

PHP不支持多线程,这将在不久的将来成为PHP平台主要的缺陷。事实上,在PHP的功能函数中也有几种多线程操作,但是这是很有限的,而且都是很孤立的。当然,多线程操作是困难的,必须为它提供好的了解死锁的抽象方法,竞态条件和数据锁。

PHP-Java桥给我们了一个解决方法,就是使用并行的方法多重检索网页数据,以此来代替使用正常的PHP代码按顺序检索网页。 5.PHP5发行之后的平台开发。

PHP6的开发应该可以回溯到2005年。大家都知道,开发人员已经做了很多的工作,一些基本的缺陷也被克服了。尽管这样,但是依然还没有官方发布的PHP6,这的确花了太长的时间。

一个主要的原因是在PHP开发团队内部有很多不同的观点。就问题而言,像安全,异常处理和多线程操作都是很麻烦的一些事情。不管怎样,PHP6迟早都是要发行的,但是一些问题仍然没有得到解决。同时,市场情况也变化的非常快,PHP以往普遍的增长已经停止了。SourceForge.net门户主办了上千的项目,快速搜索它的数据库可以显示注册项目之间的比例【2】,[10]。表2显示了两年间的数据:

这是显而易见的,Java和PHP各自保持着自己的位置,差距稍微有一点缩小,发展最快的平台是.NET平台。当然,大量的项目并不是决定性的条件,但是这些数据依然是很有象征性的。

美国标

NIST

赞助了国家脆弱性数据库。这是美国政府基于脆弱性管理的标准数据库。对脆弱性问题进行检索,将展示出与之相匹配的记录:PHP-8167,Java-1196,ASP-1196.这并不令人惊讶,大量的与Java有关的问题绝对不会少于其他的语言,但是PHP与其他语言相比有着巨大的领先优势。

意见和今后需要做的工作

如今,PHP也许是Web开发中最流行的平台。它在初学者之间很流行,然而,这将会是一件很让人焦虑的事情。如果主要的脆弱部件--PHP脚本不被调查,损害典型的LAMP服务器就将变得非常容易。事实就是,在PHP应用程序中找出了大量的脆弱性因数,这不仅仅是语言本身的,这也将导致很糟糕的程序设计。这其中的一些示例已经被写出来了,而网络新手来是很容易获得的这些代码的。也许现在是时候使着个语言变得更好了,它已经生了很多有安全隐患和错误的实例了。

PHP在其他方面也是缺乏支持的,这主要是指在Web开发平台的竞争中很必要的一些特性。在这些问题被找出之后,必然会有一场广泛的讨论将继续下去,直到有明确的结果为止。 一些PHP中主要的缺陷已经经过商讨,并被克服了。但是在短时间内,大部分的缺陷会存在着,因为,如果用其他方法,PHP的受欢迎程度必然会受到很大的影响。唯一的方法就是,PHP不仅要摆正自己的位置,而且还要面对即将来临的挑战。

参考文献

[1] Gutmans, A., St.Bakken.PHP 5 Power Programming.Prentice Hall PTR, 2005.[2] Cholakov, N.Current state and perspectives for the JAVA platform after the first decade.Conference “Mathematics, informatics and computer science”, V.Turnovo, 2006 (in bulgarian) [3] Steward, S.PDF Hacks.Cambridge, O’Reilly, 2004 [4] http://nvd.nist.gov/nvd.cfm [5] http://snaps.php.net/ [6] http://tnx.nl/php [7] http://www.daodoc.com/c/a/PHP/Simulating-Events-with-PHP-5/ [8] http://www.php.net/docs.php [9] http://www.rankhigher.net/webdevelopment/php_5_error_handling.php [10] http://www.sourceforge.net/softwaremap/

ABOUT THE AUTHOR Nikolaj Ivanov Cholakov, PhD, Department of Information technologies, University of Veliko

Turnovo,

Phone:

+359

62

649831,

Е-mail: n.cholakov@uni-vt.bg.

第14篇:PHP面试题

PHP程序员初级面试题

一、解释一下语句作用,并标示出以下哪一句不会把 John 新增到 users 阵列?

$users[] = \'john\';

array_add($users,‟john‟);

array_push($users,„john‟);

$users ||= \'john\';

二、sort()、aort()、和 ksort() 有什么分别?它们分别在什么情况下使用? sort()

asort()

ksort()

三、以下的代码会产生什么?为什么? $num =10; function multiply(){ $num =$num *10; } multiply(); echo $num;

四、reference 跟一个正规的变量有什么分别?如何 pa by reference?在什么情况下我们需要这样做?

五、哪些函式可以用来向正在执行的脚本中插入函式库?

六、foo() 与 @foo() 有什么分别?

七、你如何替 PHP 的应用程式侦错?

八、“===”是什么?试举一个“==”是真但“===”是假的例子。

九、你会如何定义一个没有成员函式或特性的类别 mycla?

十、include 和 include_once 有什么分别?require 又如何?

十一、以下哪一个函式可以把浏览器转向到另一个页面? redir()

header()

location()

redirect()

十二、以下哪一个函式可以用来开启档案以便读/写? fget()

file_open()

fopen()

open_file()

十三、mysql_fetch_row() 和 mysql_fetch_array() 有什么分别?

十四、下面的代码用来做什么?请解释。

$date=\'08/26/2003\';print ereg_replace(\"([0-9]+)/([0-9]+)/([0-9]+)\",\"[url=file://2///1///3%22,$date]\\2/\\1/\\3\",$date[/url]);

十五、试写出几个输出一段 HTML 代码的方法。 (一)

成功把 John 新增到阵列 users。 函式 array_add() 无定义。

成功把 John 新增到阵列 users。

语法错误。

(二)

根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。

与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。

根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。

(三)

由于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS[\'num\']),所以 $num 的值是 10。

(四)

Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。

$myVariable = \"its\' value\"; Myfunction(&$myVariable); // 以 reference 传送参数以 reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。

(五)

对这道题目不同的理解会有不同的答案,我的第一个想法是插入 PHP 函式库不外乎 include()、include_once()、require()、require_once(),但细心再想,“函式库”也应该包括 com 物件和 .net 函式库,所以我们的答案也要分别包括 com_load 和 dotnet_load,下次有人提起“函式库”的时候,别忘记这两个函式。

(六)

foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。 @foo() 在执行这个函式时,会隐藏所有上述的错误讯息。

很多应用程式都使用 @mysql_connect() 和 @mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严重的失误,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。

(七)

我并不常这样做,我曾经试过很多不同的侦错工具,在 Linux 系统中设定这些工具一点也不容易。不过以下我会介绍一个近来颇受注目的侦错工具。

PHPAPD,第一步是执行以下的指令安装: pear install apd安装后在你的脚本的开头位置加入以下的语句开始进行侦错: apd_set_pprof_trace();执行完毕,打开以下档案来查阅执行日志: apd.dumpdir 你也可以使用 pprofp 来格式化日志。

(八)

“===”是给既可以送回布尔值“假”,也可以送回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和 strrpos() 便是其中两个例子。

问题的第二部份有点困难,想一个“==”是假,但是“===”是真的例子却很容易,相反的例子却很少。但我终于找到以下的例子:

if (strpos(\"abc\", \"a\") == true){ // 这部分永不会被执行,因为 \"a\" 的位置是 0,换算成布尔值“假”}if (strpos(\"abc\", \"a\") === true){ // 这部份会被执行,因为“===”保证函式 strpos() 的送回值不会换算成布尔值.} (九)

cla mycla{} (十) $obj = new mycla(); (十一)

使用语句:$this->propertyName,例如:

cla mycla{ private $propertyName; public function __construct() { $this->propertyName = \"value\"; }} (十二)

三者都是用来在脚本中插入其他档案,视乎 url_allow_fopen 是否核准,这个档案可以从系统内部或外部取得。但他们之间也有微细的分别:

include():这个函式容许你在脚本中把同一个档案插入多次,若果档案不存在,它会发出系统警告并继续执行脚本。 include_once():它跟 include() 的功能相似,正如它的名字所示,在脚本的执行期间,有关档案只会被插入一次。 require():跟 include() 差不多,它也是用来在脚本中插入其他档案,但若果档案不存在,它会发出系统警告,这个警告会引致致命错误令脚本中止执行

(十三)

这不是一个 PHP 函式,会引致执行错误。

这个是正确答案,header() 用来插入卷头资料,可以用来使浏览器转向到另一个页面,例如:

header(\"Location: http://www.daodoc.com/\");

这不是一个 PHP 函式,会引致执行错误。

这不是一个 PHP 函式,会引致执行错误。

(十四)

这不是一个 PHP 函式,会引致执行错误。

这不是一个 PHP 函式,会引致执行错误。

这是正确答案,fopen() 可以用来开启档案以便读/写,事实上这个函式还有很多选项,详细资料请参阅 php.net。

这不是一个 PHP 函式,会引致执行错误。

(十五)

mysql_fetch_row() 把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引 0,第二栏在索引 1,如此类推。mysql_fetch_aoc() 把数据库的一列储存在一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回“first_name”、“last_name”、“email”三个栏位,阵列的索引便是“first_name”、“last_name”和“email”。mysql_fetch_array() 可以同时送回 mysql_fetch_row() 和 mysql_fetch_aoc() 的值。

(十六)

这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便: // 对应一个或更多 0-9,后面紧随一个斜号$regExpreion = \"([0-9]+)/\";// 应一个或更多

0-9,后面紧随另一个斜号$regExpreion .= \"([0-9]+)/\";// 再次对应一个或更多 0-9$regExpreion .= \"([0-9]+)\";至于 [url=file://2///1///3]\\2/\\1/\\3[/url] 则是用来对应括号,第一个括号对的是月份,第二个括号对应的是日期,第三个括号对应的是年份。

(十七)

首先,PHP 有内建函式 strip_tags() 除去 HTML 标签,为何要自行编写正规表达式?好了,便当作是面试的一道考题吧,我会这样回答:

$stringOfText = \"

This is a test

\";$expreion = \"/(.*?)/\";echo preg_replace($expreion, \"[url=file://2/]\\2[/url]\", $stringOfText);// 有人说也可以使用 /(]*>)/ $expreion = \"/(]*>)/\";echo preg_replace($expreion, \"\", $stringOfText); (十八)

这正是为何我老是告诉别人选择适当的编程语言,若果你只用一种语言的话你怎么能回答这道问题?这道问题很简单,Perl 所有阵列变量都是以 @ 开头,例如 @myArray,PHP 则沿用 $ 作为所有变量的开头,例如 $myArray。 至于 Perl 表示散列表则用 %,例如 %myHash,PHP 则没有分别,仍是使用 $,例如

$myHash。

(十九)

最主要的俩各选择是 seion 和 cookie。使用 seion 的方法是在每一页的开始加上 seion_start(),然后利用 $_SESSION 散列表来储存 seion 变量。至于 cookie 你只需记着一个原则:在输出任何文字之前调用 set_cookie() 函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 变量。

还有一个不那么可靠的方法,就是利用访客的 IP 地址,这个方法有特定的危险性。

(二十)

这个可能是我最喜欢的函式库,自从 PHP 4.3.0 版本后 GD 便内建在 PHP 系统中。这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上。

(二十一)

嗯,你可以使用 PHP 中任何一种输出语句,包括 echo、print、printf,大部分人都使用如下例的 echo: echo \"My string $variable\";你也可以使用这种方法:

echo

我们不要为一个简单的问题引发一场舌战,正如我经常说的:“为工作选择适合的语言,不要把工作迁就语言。”我个人认为 Perl 十分适合用作命令行工具,虽然它在网页应用上也有不错的表现,但是它的真正实力在命令行上才能充分发挥。同样地,PHP 虽然可以在控制台的环境中使用,但是个人认为它在网页应用上有更好的表现,PHP 有大量专门为网页应用而设计的函式,Perl 则似乎以命令行为设计之本。

个人来说两种语言我都喜欢,在大学期间我经常使用 Perl、PHP 和 Java,可惜工作上我使用 C#,但在家里我花不少时间操练 PHP、Perl、Ruby(现正学习)和 Java,保持我的技能知识在最新状态。很多人问我 C 和 C++ 怎么样,它们是否仍有机会在我的应用中占一席位,我的答案基本上是“否”,我近来的工作主要集中在网页开发,虽然 C 和 C++ 也可以用来写网页,但它们到底不是为这种工作而设计的,“为工作选择适合的语言”,若果我需要编写一个控制台应用,用来展示 bubble sort、quick sort 和 merge sort 的效能比较,我一定会使用 C / C++。若果我需要编写一个相片簿系统,我会使用 PHP 或者 C#(我认为制作用户介面方面 .NET 语言比网页更加)。

第15篇:php补充

php模板引擎由来

如果你正在设计一个交互式的网站,你一定会关注两个主要的问题,就是界面美工和应用程序。在大多数的项目组中,开发一个Web程序都会出现这样的流程:计划文档提交之后,界面设计者(美工)制作了网站的外观模型,然后把它交给后台程序员。程序员使用PHP实现程序逻辑,同时使用外观模型做成基本架构,然后工程被返回到HTML页面设计者继续完善。就这样工程可能在后台程序员和页面设计者之间来来回回好几次。由于后台程序员不喜欢干预任何有关HTML标签,同时也不需要美工们和PHP代码鬼混在一起。美工设计者只需要配置文件,动态区块和其他的界面部分,不必要去接触那些错综复杂的PHP代码。因此,这时候有一个很好的模板支持就显得很重要了。

PHP是一种HTML内嵌式的在服务器端执行的脚本语言,所以大部分PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。虽然通过MVC设计模式可以把程序应用逻辑与网页呈现逻辑强制性分离,但也只是将应用程序的输入、处理和输出分开,网页呈现逻辑(视图)还会有HTML代码和PHP程序强耦合在一起。PHP脚本的编写者必须既是网页设计者,又是PHP开发者。但实际情况是,多数Web开发人员要么是精通网页设计,能够设计出漂亮的网页外观,但是编写的PHP代码很糟糕;要么仅熟悉PHP编程,能够写出健壮的PHP代码,但是设计的网页外观很难看。具备两种才能的开发人员很少见。

现在已经有很多解决方案,可以将网站的页面设计和PHP应用程序几乎完全分离。这些解决方案称为\"模板引擎\",它们正在逐步消除由于缺乏层次分离而带来的难题。模板引擎的目的,就是要达到上述提到的逻辑分离的功能。它能让程序开发者专注于资料的控制或是功能的达成;而网页设计师则可专注于网页排版,让网页看起来更具有专业感。因此,模化引擎很适合公司的Web开发团队使用,使每个人都能发挥其专长。

模板引擎技术的核心比较简单。只要将美工页面(不包含任何的PHP代码)指定为模板文件,并将这个模板文件中有活动的内容,如数据库输出、用户交互等部分,定义成使用特殊\"定界符\"包含的\"变量\",然后放在模板文件中相应的位置。当用户浏览时,由PHP脚本程序打开该模板文件,并将模板文件中定义的变量进行替换。这样,模板中的特殊变量被替换为不同的动态内容时,就会输出需要的页面。

在Web开发中分离应用程序的业务逻辑和表现逻辑,是我们使用模板引擎的主要目的。这是因为有以下两个重要原因:

美工设计人员可以与应用程序开发人员独立工作,因为应用的表现和逻辑并非密不可分地纠缠在一起。此外,因为大多数模板引擎使用的表现逻辑一般比应用程序所使用编程语言的语法更简单,所以,美工设计人员不需要为完成其工作而在程序语言上花费太多精力。

可以使用同样的代码基于不同目标生成数据,例如生成打印的数据、生成Web页面或生成电子数据表等。如果不使用模板引擎,则需要针对每种输出目标复制并修改代码,这会带来非常严重的代码冗余,极大地降低了可管理性。 编辑本段类型

目前,可以在PHP中应用的并且比较成熟的模板有很多,例如Smarty、PHPLIB、IPB、xingTemplate等几十种。使用这些通过PHP编写的模板引擎,可以让你的代码脉络更加清晰,结构更加合理化。也可以让网站的维护和更新变得更容易,创造一个更加良好的开发环境,让开发和设计工作更容易结合在一起。但是,对于一个PHP程序员来说,没有哪一个PHP模板对他是最合适、最完美的。因为PHP模板就是大众化的东西,并不是针对某个人开发的。如果能在对模板的特点、应用有清楚的认识基础上,充分认识到模板的优势劣势,就可以知道是否选择使用模板或选择使用哪个模板。 smarty

smarty是一个基于PHP开发的PHP模板引擎。它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。 Template Lite

Template Lite是一个非常快而且很小HTML模板引擎。该引擎支持Smarty模板引擎所具有的大部分功能和过滤器。 TinyButStrong

TinyButStrong(TBS)是一个可以让PHP脚本和HTML文件干净分离的PHP模板引擎。TBS设计成可以使用任何可视化HTML编辑器来编写TBS的HTML模板页。 XTemplate

XTemplate是一个适用于PHP的模板引擎。它允许把HTML代码与PHP代码分开存储。XTemplate包含了许多有用的功能比如嵌套的程序块,各种类型的插值变量。其代码非常简洁并且是最优化的。 Savant

Savant是一个强大但轻量级的面向对象PHP模板引擎。不象其模板系统,Savant默认没有把模板编译成PHP,而是使用PHP本身来作为它的模板语言所以你不需要学习一套新的标记系统。Savant有一个面向对象的模板插件系统和输出过滤器,可以让你快速为它新增新的行为。

phemplate

phemplate是一个简单而且快速的PHP模板引擎。它允许在模板中加入变量和一些动态程序块包括循环。该模板引擎能够可以实现表现与逻辑相分离,也就是说你可以从PHP脚本中抽出所有HTML内容。设计人员可以随意更改HTML而不用担心弄乱你的PHP脚本。 Dwoo

Dwoo是一个PHP5模板引擎。兼容Smarty模板,它在Smarty语法的基础上完全进行重写。支持通过插件扩展其功能。 Sugar

Sugar是一个类似于Smarty的模板引擎,拥有一个简洁和易于理解的语法。 Twig

Twig是一个灵活,快速,安全的PHP模板语言。它将模板编译成经过优化的原始PHP代码。Twig拥有一个砂箱模型来评估不可信的模板代码。Twig由一个灵活的词法分析器和语法分析器组成,可以让开发人员定义自己的标签,过滤器并创建自己的DSL。 FXL Template

FXL Template是一个易于使用的模板引擎,提供了一个模板系统所拥有的所有基本功能。支持简单的text/array分配,block和嵌套的blocks。拥有良好的规则表达式和简单的模板语法,以实现尽可能快的模板处理。 H2o

H2o是一个PHP模板引擎,它拥有django风格的漂亮模板标签。它大部分概念都源于Django模板。特性:拥有可读和自然的语法。复用模板Inclusion和继承。国际化支持。各种缓存支持。 ns-template 2010年大约5月份时,感受到DEDE标签主动调用数据理念适合CMS,所以开发了一些Smarty自定义修改器和自定义标签,但是在执行过程中性能低下,开销以s计,这是无法容忍的。分析跟踪,受自定义标签实现的原理限制不可能快。于是在dz模板的基础上加入了不少smarty语法以及自定义标签功能。经历了一年多线上运行和bug修复,并且弥补了DEDE标签多级嵌套问题后,在较稳定的情况下释出该版本。 Php的缺点

缺乏对名字空间的支持。名字空间(namespace)是开发大型应用程序时非常有用的特性,它能够代码中的名字分配到不同的空间中,从而避免它们互相冲突。如果没有名字空间,在使用第三方库的时候,很容易遇到名字冲突的问题,即不同的类、接口、函数或全局变量使用了同样的名字。C++/Java/C#等语言都支持名字空间。名字空间本来是PHP5开发计划的一部分,但是由于这一特征对性能造成了明显的影响,最终在发布版中被取消了。因此,直到现在,PHP程序员们仍然不得不使用非常长的名字(诸如Canata_Util_ConvertHtml())来避免名字冲突。

缺乏对Unicode的支持。PHP5 仍然没有添加对Unicode的内置支持,仅仅是增加了一些多字节字符串(Multibyte String)处理函数,而这些函数需要在编译时手工指定才能够打开。据说Unicode将在PHP 6中得到完整的支持。

缺乏统一的命名规范。和Java不同,PHP没有统一的命名规范。因此,PHP程序员随心所欲地使用他愿意使用的任何命名规范。象converttohtml()、ConvertToHtml()和convert_to_html()这样的命名规范往往同时被使用。对于程序员自己来说,只要坚持使用一种命名规范,倒不是什么太大的问题;但是如果需要用到第三方库的时候,这种经验就不那么令人愉快了。

缺乏标准框架。到目前为止,PHP社区没有出现一套统一的、完整的Web开发框架,象Struts或Ruby on Rails那样。PHP程序员只有可复用的函数和类。这也许要部分地归因于PHP本身的特性,由于它无法实现有效的缓存机制,因此也无法构建传统的MVC框架。

PHP的缺点与不足

我在过去的四年里一直致力于PHP应用的开发。PHP确实十分容易编写。但是PHP也有一些十分严重的缺陷。

下面我会给出我的理由,为什么PHP不适合于比小型业余网站更大的网站。

1.对递归的不良支持

递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是,PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP 4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限制和其他语言比起来明显少。”见bug 1901。这是一个很不好的借口。每一个编程语言都应该提供良好的递归支持。

2.许多PHP模块都不是线程安全的

在几年前,Apache发布了Web服务器的2.0版。这个版本支持多线程模式,在这个模式下,软件一个一部分可以同时运行多个。PHP的发明者说PHP的核心是线程安全的,但是非核心模块不一定是。但是十次有九次,你想要在PHP脚本中使用这种模块,但这又使你的脚本不能合适Apache的多线程模式。这也是为什么PHP小组不推荐在Apache 2 的多线程模式下运行PHP。不良的多线程模式支持使PHP常被认为是Apache 2依然不流行的原因之一。

3.PHP 因为商业应用而残废

通过使用缓存,PHP的性能可以陡增500%[见基准测试]。那么为什么缓存没有被构建在PHP中呢?因为Zend——PHP的制造者,它在销售自己的Zend Accelerator,所以当然,他们不想抛弃自己的商业产品这块肥肉。

但是有另一个可选择的: APC.(Zend后来推出Zend Optimizer,免费的加速器——译者)

4.没有命名空间

设想某个人制作了一个PHP模块用来阅读文件。模块中一个函数叫做read。然后另一个人的模块可以读取网页的,同样包含一个函数read。然后我们就无法同时使用这两个模块了,因为PHP不知道你要用哪个函数。

但是有一个很简单的解决方法,那就是命名空间。曾经有人建议PHP5加入这个特性,但不幸得是他没有这么做。现在,没有命名空间,每个函数都必须加上模块名作为前缀,来避免名称冲突。这导致了函数名恐怖得长,例如xsl_xsltproceor_transform_to_xml让代码难于书写和理解。

5.不标准的日期格式字符

很多程序员对 日期格式字符 都很熟悉,它是从UNIX和C语言中来的。其他一些编程语言采用了这个标准,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。在C中,“%j”表示一年中的当天,在PHP中他表示一个月中的当天。然而使事情更混乱的是:Smarty (一个很流行的PHP模版引擎)的 strftime 函数和 date_format 函数,却使用了C/UNIX的格式化字符。

6.混乱的许可证

你也许认为PHP是免费的,所有的在手册中提到的PHP模块也是免费的。错了!例如,如果你想在PHP中生成PDF文件,你会在手册中发现两个模块:PDF 和 ClibPDF。但是这两个都是有商业许可证的。所以,你所使用的每个模块,你都要确保你同意他的许可证。

7.不一致的函数命名规则

有些函数名称是有多个单词组成的。一般有三种单词组合的习惯:

直接拼接:getnumberoffiles 用下划线分开:get_number_of_files 骆驼法则:getNumberOfFiles 大部分语言选择其中一中。但是PHP都用到了。

例如,你想要把一些特殊字符转换成HTML实体,你会使用函数htmlentities (直接拼接单词)。如果你要使用相反的功能,你要用到它的小弟弟html_entity_decode。由于某些特殊的原因,这个函数名是由下划线分隔单词。怎么能这样呢?你知道有一个函数叫strpad。或者他是str_pad?每次你都要查看一下到底这个符号是什么或者直接等他出现一个错误。函数是不分大小写的,所以对于PHP来说rawurldecode 和RawUrlDecode之间没有什么区别。这也很糟糕,因为两个都使用到了同时他们看上去还不一样,混淆了阅读者。

8.魔法引用的地狱

魔法引用(Magic quote)可以保护PHP脚本免受SQL注入攻击。这很好。但是出于某些原因,你可以在php.ini中关闭这个配置。所以你如果要写出一个有弹性的脚本,你总要检查魔法引用是开启还是关闭。这样一个“特性”应该让编程更简单,而事实上变得更复杂了。

9.缺少标准框架

一个成长中的网站没有一个整体框架,最终会变成维护的噩梦。一个框架可以让很多工作变得简单。现在最流行的框架模型时MVC-模型,在其中表现层、业务逻辑和数据库访问都分离开了。

第16篇:PHP课后

PHP课后习题

第一章自测题

一、单选题

1.动态网站隶属性下面哪一种软件开发形式(

)

A.应用程序开发

B.C/S架构软件

C.嵌入式程序开发

D.B/S架构软件

2.在下面的选项中,哪一种Web构建在开发动态网站时通常用于接收井处理用户事件(

)

A.HTML

B.CSS

C.JavaScript

D.PHP 3.下面几个后台脚本编程语言中,哪个属于开源的软件(

)

A.ASP

B.PHP

C.JSP

D.CGI 4.下面几个Web构建中,哪个可以直接作为数据库的客户端应用处理数据库中的数据(

)

A.JavaScript

B.Apache

C.Linux

D.PHP 5.用于调整网页的外观和布局的Web构建是下面选项中的哪一个()

A.PHP

B.JavaScript

C.CSS

D.XML 6.构建一个网站开发平台,希望具有简易性、低成本、高安全性、开发速度快并且执行灵活,可以选择下面选项中哪一种网站开发平台(

)

A.ASP.NET

B.J2EE

C.LAMP

D.CGI 7.下面选项中,哪个不属于URL的组成部分(

)

A.传输协议

B.主机

C.端口

D.Internet 8.如果选用LAMP平台开发Web程序,下面选项中不能使用PHP处理的工作是(

)

A.接收用户表单

B.处理用户事件

C.图像处理

D.生成HTML输出

9.在下面的选项中,可以由Web服务器Apache完成的工作是哪一个(

)

A.解析PHP文件

B.连接处理数据库

C.主动建立与客户端连接

D.发布网站

10.在下面的选项中,对MySQL数据库描述不正确的是(

)

A.MySQL属于C/S结构软件

B.在LAMP组合的开发平台中,MySQL用于保存网站中的内容数据

C.可以使用PHP作为MySQL客户端程序连接并处理MySQL服务器

D.MySQL服务器必须和Apache服务器以及PHP应用服务器安装在同一台电脑中

二、练习题

1.了解B/S软件体系结构的特点。

2.掌握动态网站开发所需要的Web构件,及每种构件在Web开发中的用途。 3.了解网站的运行过程,Web的王作原理

4。了解HTTP请求/响应模式的过程,及URL的作用 5.探索LAMP组合的特性及应用领域

第二章自测题

1.下载最新版本的源代码包,在Linux操作系统下为自己安装一个最好的LAMP运行平台,并配置好phpMyAdmin。

2.下载各种软件的最稳定版本,在Windows操作系统中独立安装属于自己的PHP T作平台,要求设置好每个软件的安装路径,井配置好phpMyAdmin。

3.挑选一种自己喜欢的PHP及相关软件的集成版本,安装并进行设置。

4.不管是安装的哪一种开发环境,找到Apache、MySQL、PHP的安装目录和它们的配置文件, 以及网页发布目录的位置。

第三章自测题

一、单选题

1.Apache是(

)服务的服务器程序

A.WWW

B.FTP

C.

E-m ail

D.DNS 2.对于Apache Web服务器说法不正确的是(

)

A.Apache Web服务器是一种公开源代码程序

B.Apache Web服务器可以在Linux操作系统上运行

C.Apache Web服务器不可以在Windows操作系统上运行

D-Apache Web服务器是现在使用的最广泛的Web服务器 3.在HTTP守护进程各参数中,参数ServerRoot设置的是(

)

A.配置文件存放的目录

B.服务器根目录

C.可执行程序放置的目录

D.脚本存放的目录

4.在设置服务器的访问控制时,中“/”表示的意思是(

)

A.表示的是该参数结束的一个符号

B.表示的是必须将其更改成相应的目录路径

C.根目录

D.后面的所有字母为注释 5.在Apache Web服务器安装过程中,需要填写Server Information,其中Network Domain:中要填写的是()

A,服务器所在网络的域

B.服务器的域名

c.DNS服务器的域名

0.管理员的电子邮件地址 6.假设计算机的名称为myhost,Web服务器根目录为C:\\www\\,在该目录之下有一个PHP脚本,其完整路径为C:\\www\\test\\ckmo.php。请问,如果我们要在浏览器执行此PHP网页,应该在浏览器地址栏输入下列哪个网址(

)

A. http://myhosL/demo.php

B.file:///test/demo.php

C.http://www/test/demo.php

D.http://myhost/test/demo.php 7.下面是Apache配置文件中的常用配置指令,哪一项是用于指定发布网页文档根目录的指令(

) A. ServerAdmin

B.ServerRoot

C.DocumentRoot

D.ServerName 8.如果需要拒绝对任何以“/private”开头的URL路径的访问,可以使用下面哪一个容器指令进行配置(

)

A.

B.

C.

D.9.当客户端在请求的目录名的末尾刻意暴加一个”/”时,就可以请求该目录的index.php文件,需要在Apache配置文件中配置哪个指令(

)

A. Alias B.ServerRoot C.DocumentRoot D.DirectoryIndex 1 0..htacce文件提供了针对每个目录改变配置的方法,但启用.htacce都会导致服务器的性能下降,以及会导致一些不安全的因素。在下面的指令中,哪个指令可以禁止在目录下使用该文件(

)

A.AllowOverride None

B.Options Indexes

C.AllowOverride ALL

D.Deny from all

二、练习题

1.试简述PHP网络应用程序的基本原理。

2.修改Apache酡置文件,禁止用户访问/din/目录下PHP脚本文件。

3.配置Apache服务器,服务器中的/www/public/html/目录设置以别名/demo/访问。 4.利用apache的URL重写技术,实现将URL为http://localhost/user.php?name=part的重写成http://localhost/user/part来访问。

5.配置基于域名的虚拟主机.所有的虚拟主机都使用同一个IP地址,通过不同的主机来标识不同的虚拟主机。

第四章自测题

一、单选题

1.关于HTML的描述,哪砦是正确的(

)

A.HTML是超文本标记语言的缩写

B.HTML文件是包含标记标签的程序文件

C.标记标签可让浏览器了解怎样去显示这个页而

D.使用普通的文字编辑器可以建立HTML文件 2.关于CSS的描述,哪些是正确的(

)

A.CSS意思就是叠层样式表

B,样式定义了HTML元素怎样去显示

C.样式一般存储在HTML中

D.外部样式表存储在CSS文件中 3.关于Javascript的描述,哪砦是正确的(

)

A.JavaScrjpt为HTML页面提供交互的功能

B.JavaScript通常直接嵌套在HTML页面中

C.JavaScript是一种诠释性语言(即在执行脚本前无须进行预先编译)

D.JavaScript是一种有序的计算机代码

4.在HTML网页上,表单中INPUT元素的TY PE属性值设置为(

)时,用语创建重置按钮。

A.reset

B.set

C.button

D.image 5.创建一个样式丧,设置当前HTML页而中应用类型样式compact的元素的字体为斜体,下列能实现该功能的代码是(

)

A.compact{font-style;italic;}

B.@compaet{foru-style;italic;}

C..compact{ font- style;italic;}

D.#compact{font-style;italric;} 6.已知在HTML页面上定义了如下所示的c样式:

.tBorder{

Border-Ieft-width: Opx;border- left-width:l px;border-right-style:dashed;

Padding-top: Spx;padding-left:2px;

}

分析如下所示的HTML代码片段,选项中的说法错误的是(

)

姓名:

性别:

A.表格应用了类样式tBorder

B.表格共3列,其中name文本输入框跨2列

C.表格单元格右边框为dashed样式(虚线框样式)

D.表格单元格上边框宽度为5像素

7.某站点主页而index.html的代码如下所示,则该页面显示的框架结构与图(

)所示一致。

A.图l

B.图2

C.图3

D.图4 8.下列哪种样式表的最先被网页采用(

)

A.外部样式表

B.内嵌样式表

C.行内样式表

D.标签自带属性

9.标签有助于进行搜索操作,它包含在HTML文档的头部分中。并使用属性/值组合.

A.

B,

C.

D. IO.安装Web服务器程序后,在地址栏输入(

),可以访问站点默认文档。

A.在局域网中直接输入服务器的IP地址。

B.在局域网中输入服务器所在计算机的名称

C.如果是在服务器所在的计算机上,直接输入http://127.0.0.l

D.以上全都是对的

二、练习题 1.使用DIV+CSS技术布局一个自己的网站首页(参考本书最后一章CMS项目实例首页)。 2.使用HTML框架技术布局一个网站后台管理界面(参与本书最后一章CMS项目实例的后台管理平台)。 3.在不使用图片和HTML表格的条件下,通过DIV+CSS将下图中的计算器界面布局在网页的中央(要求在网页中显示的效果和下图一致)。

第五章自测题

一、单选题

1.PHP是那种类型的语言(

)

A.编译型

B.解释型

C.两者都是

D.两者都不是 2.若x,y为int型变量,则执行以下语句后,y的值为(

)

x=l;

++x;

y=x++;

A.1

B.2

C.3

D.0 3.$a=\\”hello\\”;

$b=&$a;

unset($b};

$b=\\”world\\”;

echo $a;

的结果是(

)

A.Hello

B.World

C.NULL

D.unset 4.下面哪个表达式不能将两个字符串$sl和$s2串联成一个单独的字符串(

)

A.$sl+$s2

B.”{$s1}{$s2}”

C.$sl.$s2

D.implode(“,array($sl,$s2)) 5.getdate()函数返回的值的数据类型是(

)

A.整形

B.浮点型

C.数组

D.字符串

E.布尔型

6.下面哪个选项不属于正确的PHP代码的开始和结束标记(

)

A.<% %> B.<? ?>

C.<?= ?>

D.

E.<?Php ?>7.PHP中,单引号和双引号所包围的字符串有什么区别(

)

A.单引号速度快,双引号速度慢

B.双引号速度快,单引号速度慢

C.两者没有速度差别

D.双引号解析其中以$开头的变量,而单引号不解析

E。单引号解析其中\\r \\t等转义字符,而双引号不解析 8.在用浏览器查看网页时出现404错误可能的原因是(

)

A.页面源代码错误

B.文件不存在

C.与数据库连接错误

D.权限不足 9.PHP中的错误控制操作符是(

)

A.%

B.$

C.#

D.@ 10.定义常量的函数是(

) A.define()

B.constant()

C.print()

D.echo()

第六章自测题

一、单选题

1.以下代码执行结果为(

)

<?php

$A=\"Hello\";

function print_AO{

$A=”php mysql!!”;

glohal $A;

echo $A;

}

echo $A;

print_A();

?>

A.Hello

B. php mysql !!

C. Hello Hello

D. Hello php mysql !! 2.执行完以下代码后,变量$num的值为(

)

<?

$num=10;

function demo($number){

$number=$number+20

}

derno(&$num);

echo $num,”\\n”;

?>

A.10

B.20

C.30

D.显示错误 3.下列代码执行后,输出结果正确的是(

)

<? function sum() {

$result=l;

$result ++; } echo $result; ?>A.1

B.2 C.运行错误

D.都不对 4.以下代码执行结果为(

<?

$a=”hello”;

function print_a( ){

global $a;

$a= “phper”;

}

echo $a;

?>A.phper

B.hellophper

C.hello

D.错误

5.以下程序运行结果为(

)

<?

function total_Sum($c=5,$b=3,$a){

echo $a.”+”+.$b.”+”.$c.”=”.($a+$b+$c);

}

total Sum(l);

?>

A.5+3+1=9

B.1+5+3=9

C.提示错误,并有显示:+3+l=4

D.9 6.以下程序运行结果为(

)

<?php

$str=FALSE;

if (empty(Svar)){

echo “null”;

}else{

echo \"have value\";

}

?>

A.null

B. have value C.无法确定

D.什么也不显示,提示错误 7.以下程序运行结果为(

)

<?

$str=”LAMP”;

Sstr l=\"LAMPBrother\"

$strc =strcmp($str,$strl);

switch (Sstrc){

case l:

echo \"str>strl\";

break;

case -l:

echo “str

break;

case 0:

echo \"shr =strl\";

break;

default:

echo \"strstrl\";

?>

A.

str>strl

B. str

C. str=strl

D.

str strl 8,以下代码返回的结果为(

)

<?

funccion p( ){

retum l;

}

if (p()){

echo \"false\";

}else{

echo “true”;

}

?>

A.true

B.false

C. 程序运行出错

D.根据版本来定 9.哪一个语言结构最能代表以下多路分支if语句的选择结构(

<?php

if($a==‘a’){

somefunction();

} else if(.$a==‟b‟){

anotherfunction();

} else if($a==‘c’){

dosomethirig();

} else{

donothing();

}

?>

A-没有default的switch语句

B.一个递归的函数调用

C.一个while语句

D.它是唯一的逻辑结构

E.使用default从句的switch语句 10-哪一个三元运算符相当于此脚本(

)

<?php

if($a

if($b>11){

if($c=10&&$d!=$c){

$x=0;

} else{

$x=1;

}

}

}

?>

A.$x =($a11|| $c==1&&$d !=$c) ?0:1;

B.$x=($a11|| ($c==1&&$d!=$c)) ?0:1;

C.$x=(($a(($a11)||($c==1&&$d!=$c))?0:1;

D.$x=($a11&&$c==1&&$d!=$c)?0:1;

E.以上都不是

二、练习题

l.若有n行n列数组,试编写一个程序,分别求出两条对角线元素之和。 2.请说明PHP中传值与传引用的区别,什么时候传值,什么时候传引用。

第七章自测题

一、单选题

l,下而的脚本运行以后,$array数组所包含的值是(

)

<?php

$array=array(„1‟,‟1‟1);

Foreach (Sarray as $k=>$v){

$v=2;

}

?>

A.array(„2‟,‟2‟)

B.array(„1‟,‟1‟) C.array(2,2)

D.array(Null,Null) 2.如果你想对一个数组进行排序,排序的方式是按照元素的值从小到大排序。同时,需要在排序后保持关键字与值的对应关系。下面那个函数实现这个功能()

A.ksort()

B.asort()

C.krsort()

D.sort()

E.usort() 3.下面代码的输出是(

)

<?php

$s=‟12345‟;

$s[$s[1]]=‟2‟;

echo $s;

?>

A.12345

B.12245

C.22345

D.11345

E.array 4.下面这段程序的功能是(

)

<?php error_reporting(0); function rcolor( ) {

srand((double)microtime()* 10000000);

$rand = (ramd(30, 170));

return sprintf(“%02X”, “$rand”);

} function rand_color($string) {

$array = explode(\"\", $string);

$j = count($array); For($I=0;$i

$return、=”、$array[$i]、”; } return $return:

?>

A.随机生成颜色

B.产生随机数

C. 在1~I0000000之间产生随机数

D.设置固定背景色

5.在PHP中哪个变量数组总是包含所有总客户端发出的cookies数据(

)

A.$_COOKIES B.$-COOKIE

C.$-GETCOOKIE

D.$-GETCOOKIES 6.以下关于key()和current()函数的叙述,请找出两个正确的答案(

)

A.key()函数用来读取目前指针所指向资料的索引值

B.key()函数是取得目前指针位置的内容资料

C.current()函数用来读取目前指针所指向资料的索引值

D.current()函数是取得目前指针位置的内容资料 7.向$x的结果是(

)

$arrOne=array(0,1);

$arrTwo=array(3,4);

Sx =$arrOne+ SarrTwo;

A.array(0,l);

B.array{0,l,2,3);

C.array(3,4);

D.代码有错

8.要循环操作非顺序索引的数组时,可以使用下列哪个函数来读取数组当前元素的索引值( )

A.key( )

B.next( )

C.prev( )

D.current( ) 9.以下程序运行结果为(

)

<?php

$A=array_fi11(-5,3,”Hello”);

for($i=0;$i

echo”\\$A[$i] = ”.$A[$i].” ”;

}

?>

A.$A[0]=Hello $A[1]=Hello $A[2]= $A[3]= $A[4]=

B.$A[0]=Hello $A[1]=Hello $A[2]=Hello $A[3] = $A[4]=

C.$A[0]= $A[1]=$A[2]= $A[3]= $A[4]=

D.程序运行提示错误

1 0.以下代码的运行结果为(

)

<?php

$A[]=1;

$A[]=2;

$A[]=3

$A[2]=4;

for($i=0;$i

if($i==2){

echo $A [$i];

}

}

?>

A.2

B.3

C.4

D.1

二、练习题

1.用PHP写出显示客户端IP与服务器LP的代码。

2-简述如何得到当前执行脚本路径,包括所得到参数。说明:例如,请写出类似http://www.daodoc.com’;

$str=____($email,\'@\');

Sinfo=____(‘.’,$str);

___ ($inf0);

?>输出结果为:Array ([0]=>@lampbrother[1]_>com[[2]=>cn) A. strchr, split,var_dump

B.strstr,explode, print_r C. srrstr,explode, echo

D. Strchr,split, var,_dump 5.下面哪个正则表达式,可以从服务器上取到访问域名第二层(

) A.preg_replace(\"/.*([^\\.V]+)(\\.(comlnetlorg))?\\.[^\\.V]+$/\",\"\\1\", $_SERVER[\'HTTP_ HOST\']) B.preg_replace(\"/.*?([^\\.V]+)(\\.(comlnetlorg))?\\.[^\\.V]+$/\",\"\\1\",$_SERVER[\'HTTP_ HOST\']) C.preg_replace(\"/.*([^\\.v]+)(\\.(comlnetlorg))?\\.[^\\.V]+$/\",\"\\1\",$HTTP HOST) D.preg_replace(\"/.*?([^\\.V]+)(\\.(comInmlorg))?\\.[^\\.V]+$/\",\"\\1\",$HTTP_HOST) PHP中,下列哪个函数是将字符串前后颠倒(

) A.strrev()

B.strrpos() C.strstr()

D.sirfiirst() 6 .下列那个选项是正确的引用文件的方法:(

) A.require和include

B.re:quire和function C.define和include

D.function和include 7 .以下字符的长度是(

) <?php

$text=\" \\tllo \";

echo strlen(trim($text));

?>A.9

B.5

C.7

D.3 8 .将字符串中所有英文单字的开头字母转换为大写的函数应该是(

) A.ucfrrst(\"字符串\")

B.strtolower() C.strtoupper()

D.ucwords()

二、练习题

1.写出一个函数验证电子邮件的格式是否正确。

2. 写出一个正则表达式,过滤网页上的所有JavaScript/VBScript脚本(即把script标记及其内容都去掉)。3.编写一个PHP脚本程序,用于接受用户在表单中的输入,井要求在该脚本中进行数据效验(在客户端表单中有以下字段和需要效验的格式)。

Name

请输入你的名字,单行,32个汉字以下.8个汉字以上

Title

请输入标题,单行,64个汉字以下,不能为空

Body

输入文本内容,多行,不限

E-mail 请输入邮件地址,按电子邮件格式效验

Birthday请输入生日,按YYYY-MM-DD格式效验

第八章自测题

自测题

一、单选题

1.以下哪个错误级别会使程序崩溃,阻止并退出程序(

) A.E_WARNING

B.E_NOTICE

C.E_ERROR

D.以上都可以 2.下面刘PHP错误日志描述不正确的是(

)

A.可以错误记录到Apache服务器的错误日志文件error.log 中

B.记录错误日志到自己指定的文件中

C.可以将错误日志发送给系统syslog

D。在写入错误日志之前,应该先在PHP配置文件中将displa y_errors选项开启 3.关于PHP 5中的异常,下列四句描述中哪句是错误的(

)

A.异常也是一个类

B,为了抛出我们自建的异常,我们必须使用throw语句实现

C.异常在抛山后会在父一层被自动消灭掉

D.要容忍某些特定的异常,我们应该使用try„catch语法的同时,留空catch段 4.下面哪个函数不能返回UNIX时间戳(

)

A.Time()

B.strtotime()

C.localtimeo

D.gmrnktime() 5.当前GMT时区的时间戳和当前本地的时间戳,在秒上有什么区别(

)

A.这取决于本地时区和GMT时区之间小时数的差别

B.没有任何区别

C.本地时区和GMT时区完全匹配时才相等

D.没有可比的地方

6.以下哪一个是最简单的方式将microtime()转化输出为一个单一的数值(

)

A.$time=implode(\' \',microtime());

B.

$time=explode(\' \',microtime());$time=$t.ime[0]+$time [1];

C.

$time=microtime()+microtime();

D. $time=arr ay_sum(explode(\' \',microtime())); 7.下面程序运行结果为(

)

<?php

$nextWeek=timeO+(7*24*60*60);

echo \'Now:\'.date(\'Y-m-d\').\"\\n\";

echo \'Next Week:\'.date(\'Y-m-d\',$nextWeek).\"\\n\";

?>

A.得到今天的日期(月-曰)

B-得到今天的U期(年-月-U)与下周的日期(年-月-日)

c.得到现在的时间(小时-分-秒)

D.得到现在到下周的时间间隔

8.使用PHP的GD函数库动态创建图像时,需要先获取图像资源,下面函数中哪一个不能创建图像资源(

)

A.imagecreate()

B.imagec:reatetruecolor()

C. imagecreateflromjpeg()

D.imagecolorallocate()

二、练习题

1.简述PHP中error_reporting函数的作用是什么。

2。使用PHP的日期和时间函数,打印出“前一天“的日期和时问信息(输出可以参考2009-5-12 11:05:30格式)。

3.使用PHP的GD函数库编写一个具有缩放图片和添加水印功能的类(要求支持中文水印)。

第十一章自测题

一、单选题

1.怎样打开或创建一个文件(

)

A.open()

B.fopen()

C.fwriteo

D,write() 2.下面哪两个参数用来提示fopen()函数打开一个文件进行读取并写入(

)

A.w

B.r

c.a

D.+ 3.哪个函数用来从文本文件里面读取一个单独的行,但是当你需要读取二进制数据或者其他格式的文件的时候,你需要使用哪个函数()

A.fgets(),fseeko

B.freda(),fgets0

C.fputs(),fgets()

D.fgets0,fread() 4.下面代码中file_ exists的意义是(

)

<?pbp

$ filename-‘/path/to/foo.txt’;

Iq(file_exists($fil.encame)){

Echo\"The file $filenfune exists\";

}else{

echo \"Thcfile$filename does not exist”;

)

?>

A.测试字符串

B.测试数组

C.测试变量

D.测试一个文件是否存在

5./tmp是上传文件的默认存储目录,如果更改这个目录需要编辑哪个文件的哪个属性值(

A.php.ini文件的upload_tmp_dir属性

B.php.ini文件的uploaud_dif属性

c- php,conf文件的upl\'oad_tmp_dir属性

D.php+conf文件的upload_dir属性 6.以下代码运行结果为(

)

<? php

$fp=fopen(\"/etc/pawd\",\"rt\");

$data=fgets($fp,12);

echo ftell($fp);

fclose($fp);

?>

A.13

B.11

C.0

D.10 7.File()函数返回的数据类型为(

)

A.数组

B.字符串

C.整型

D.根据文件来定 8.PHP中删除文件的函数是(

)

A. rm

B.del

C.unlink

D .rm -if 9.PHP中,可以用来接收上传的文件的函数是(

)

A.$一FILES

B- copys

C.is_uploadnle

D- move_uploaded_file 10.PHP中用来删除当前日录的函数是(

)

A.chdir

B.cd

C.opendir

D.rmdir =、练习题

1.使用PHP的文件处理函数实现网页静态化功能。

2.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

3.在没有数据库的环境下,以文件替代数据库实现一个完整的网页留言板功能。

第十二章自测题

一、单选题

1.下列哪些数据库管理系统是PHP不支持的(

) A.MySQL

B- IBM DB2

C.PostgreSQL

D.Microsoft SQL Server

E.以上没有一个PHP不支持

2.请看下面的SQL查询语句,选择哪两项可以减少从数据库返回的数据量(

)SELECT*FROM

MY —TABLE

A.转为存储过程

B.用具体的字段名来代替“*”

c.加一个“wnere\"语句

D.转变查询为视图

E.使用预语句 3.下面哪个不是一个合法的SQL的归类函数(

)

A.AVG

B.SUM

C.MIN

D.MAX

E.CURRENT_DATEO 4.mysql_affected_rows()对哪个操作没有影响(

)

A.SELECT

B.DELETE

C, UPDATE

D.INSERT 5.取得搜索语句的结果集中的记录总数的函数是(

)

A.Mysql-fetch-row

B.mysql-u root paword tcst

C.mysql_num-rows

D.mysql-u root-paword test 6.mysql_insert_id( )函数的作用是(

)

A.盘看下一次捅入记录时的ID号

B.查看刚刚插入过的自动增长ID值

C.查看一共做过多少次insert操作

D.查看一共多少条记录 7.修改MySQL崩户root的密码的指令是(

A. mysqiadmin—u root paword test

B.mysql -u root paword test

C.mysql—Ll root—ptest

D.mysql -u root -paword test

8.以下代码执行结果是(

)

<?php Mysql-connect(\"localhost\";\"root\",\"\") $result=mysql-query(\"select id,name from ib1\"); While($row=mysql-fetch-array($result,MYSQL-ASSOC)){ echo\"ID:\".$row[0],\"name:\".$row[]; } ?>A.报错

C.循环换行打印全部记录

B.只打印一条记录 D.无任何结果

B.查看刚剐插入过的自动增长ID值 D.查看一共有多少条记录

9.假设-f一个数据库mydb中有一个表tb】,表中有六个字段,主键为ID,有十条记录,ID从0到9,以下代码输山结果是(

)

<?php

$link 2 mysql_c.onnec.t(\"IocalhostrP, \"mysql_user\'t, \"mysql_pawordr\')

or die(l\'Could not connelc.t:”.m ysql_erroH));

tSresult 2 mysql_query{T\'SELECT i.d,name,age FROM mydb. tbl where id

or die(P\'Could not query: .mysqI—error(》;

echo mysql_num_fields(S;result.);

mysql_close{\'$tink);

?>

A,6

B.5

C.4

D.3 10.使用以下哪条指令能够实现数据库的长久连接(

)

A. mysql_connecE

B. mysql_con nectd

C.mysql_pconnetcd

D.mysql_pconnect 1 1.建立一个“学生”表Student,它由学弓Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一,下列哪个选项正确(

)

A. CREATE TABLE.Student(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE,Ssex CHAR(1),Sage INT* Sdep CHAR(1 5)):

B-

CREATE TABLE Student(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20)UNIQUE,Ssex CHAR(I) Sage INT, Sdept CHAR(15));

C.CREATE TABLE Student(Sno CHAR(5), Snarm: CHAR(20) UNIQUE* Ssex CHAR(I), SageINT.Sdept CHAR(15));

D- CREATE TAHLE Student(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE,Ssex CHAR(l), Sdcpt CHAR(1 5)): 12.查询所有年龄在20岁以下的学生姓名及其年龄,以下正确的是(

)

A, SELECT Sname,Sage FROM Student.WHERE Sage

B. SELECT Sname,Sage FROM Student WHERE NOT Sage

C- SELECT Sname,Sage FROM Student WHERE NOT Sage>20;

D. SELECT Sname,Sage FROM Studcnt WHERE Sage

)

A.SELECT Sname,Sno FROM Student WHERE Sname LIKE \'_阳%\';

B.SELECT Sname,Sno FROM Student WHERE Sname LIKE\'阳%\':

C. SELECT Sname,Sno FROM StU dent WHERE Sn ame LIKE\'一阳\';

D. SELE CT Sn ame,Sno FROM Student WHERE Sname LIKE\'阳_%\'; 14.HAVING短语与WHERE子句的区别是(

)

A.WHERE进择满足条件的组

B.HAVING选择满足条件的元组

C,作用对象不同

D.查询条件不同

15.导山数据库正确的方法为(

)

A.mysqldump数据库名>文件名;

B,mys qldump数据库名>>文件名;

c.mysqliciump数据库名 文件名;

D.mysqldump数据库名=文作名; 16.

卜面哪一项不是有效的SELECT语句(

)

A. SELECT astname,firstname FROM customers;

B- SELECT*FROM orders;

C. Select FirstName NAME from CUSTOMERS;

D,

SELECT lastname Last Name FROM customers; 1 7.以下ALTER语法不正确的是(

)

A. ALTER TAHLE tl RENAME t2;

B.

ALTER TABLE t2 MODIFY a TINYINT NOT NULL;

C. ALTER TABLE t2 MODIFY a TINYrNT NOT NULL, CHANGE b CHAR(20);

D.ALTER TABLE t2 ADD c INT UNSIGNED NOT NULLAUTO_INCREMENT, ADD INDEX (c); 1 8.下面哪一个不是有效的约束类型(

)

A.PRIMARYKEYS

B.UNIQUE

C.CHECK

D. FOREIGN KEY 19.MySQL.中表的默认类型为(

)

A.ISAM

B.InnoDB

C.MyISAM

D.HE.AP

二、练习题

1.实现用户注册功能。需要建一张用户信息表,并编写注册和结果两个页面。用户在注册页面填写注册信息,提交到结果页面后显示注册的结果。

具体要求:

(1)在MySQL数据库的test数据库中,创建一张用于存放用户注册信息的表,表中有描用户名”、“密码”两个字段,并且设置“用户名”字段为主键;

( 2.)用户注册页面要显示一个输入框、一个密码框和一个“注册”提交按钮:

(3)用户单击“注册”按钮时,耍用JavaScript技术对用广的输入信息进行判断,包括 用户名或者密码不能为空,密码的长度必须大于6位,用户名和密码的长度必须小于10位。 假如用户输入不符合上述规范,则弹出相应的错误提示信息终止提交;只有当用户输入满足上规范时,才允许将表单提交到结果页面;

(4)如果用户名在表中已经存在,则在结果页面提示用户重新输入用户名;

(5)如果用户名在表中不存在,则将用户的注册信息插入到数据库中,并在结果页面显示“注册成功”的提示信息;

(6)用户注册成功后,在结果页面显示“现在已经有×X位注册用户了!”并将所有的注

册用户信息以列表方式显示出来。

2.在M.ySQL数据库,使用的用户名为root,密码为php。其中的一个数据库名称为lamp,其中的有两个表名为type和border。下面为两个表中的关系与数据:

表type

表Border

编写一个脚本遍历两张表中的数据形成目录结构,一级为type表中的数据,每个类别下为border表中的数据。

具体要求:

(1)数掘库文件(具体操作语句)。

(2)正确显示一级type表中数据。

(3)正确显示每个类下border表中数据母

第17篇:php总结报告

第一章 初识PHP by hero团队

1.计算思维的本质:抽象、自动化。可以概括为:合理抽象、高效算法。主要过程包括:问题抽象,模型建立,算法设计,实现自动化。

2.PHP概念:web程序设计语言 3.PHP优点:开源、免费、跨平台。 4.PHP脚本主要用于:a)服务端

b)命令行

c)桌面应用程序

(例如php用在动态网页上。)

5.PHP基本语法:

示例: <?php

//输出hello php! echo\"Hello PHP!\"; ?>

echo 输出语句,用于输出数据

PHP第二章总结报告

(十七) 1.什么是程序

程序可以指一连贯的活动、作业、步骤、决断、计算和工序,当它们依照严格规定的顺序发生时即可

实现特定的目标或待解决特定问题。 2.计算机程序

是为实现特定目标或待解决特定问题而用计算机语言编写的命令序列的集合,告诉计算机应如何完成

一个任务。 3.程序的组成

程序是有一系列指令组成,指令时计算机做某种运算的命令,通常包含:输入、输出、基本运算、测

试和分支、循环。 (十八)

1.描述程序的工具——流程图

1.流程图的优(特)点:直接、清晰、方便、高效、便于描述。

2.流程图包含的内容:开始/终止

判断/分支 计算步骤/处理过程 输入/输出 连接符 流程线。 (十九) 常量与变量 1.什么是变量 a.变量是计算机存储器中的一块命名的空间,可以在里面存储一个值,存储的值是随时可变的,而我

们需要访问或者修改的数据则是通过变量名进行访问。 b.变量的声明:在PHP中变量总是以美元符$开头,后面紧跟变量名。

c.变量命名的规则:变量只能由字母,下划线组成;变量名必须以字母或下划线开头。

注:变量名是区分大小写的,如$age,$AGE是两个不同的变量;变量名的命名最好要具有一定的含义,

以便让阅读者做到见名知意。 2.变量的赋值

赋值号为一个“=”,并且在赋值过程中,是右边的值赋给左边! 案例:

$usermane = \"6222620230000345754\" //定义变量$usermame,保存账号名

$money = 115000; //定义变量$money,保存账户余额 3.什么是常量

a.在程序运行中永远不会被修改的数据称为常量。 b.常量定义的规则:define(常量名,常量值) 示例:

//定义一个常量,常量名为MAX_MONEY,常量的值为10000 define(\"MAX_MONEY\",10000); (二十) 1.数据类型

为什么要明确数据类型:在计算机编程语言的世界里,每一个数据都有它的类型,具有相同类型的数

据才能彼此操作。 2.四种数据类型 string(字符串) 实例: <?php

$x = \"Hello world!\"; echo $x; echo \"\"; $x = \'Hello world!\'; echo $x; ?>

integer(整型) 实例: <?php $x = 5985; var_dump($x); echo \"\"; $x = -345; // 负数 var_dump($x); echo \"\";

$x = 0x8C; // 十六进制数 var_dump($x); echo \"\"; $x = 047; // 八进制数 var_dump($x); ?>

float(浮点型,也作 double 实例: <?php $x = 10.365; var_dump($x); echo \"\"; $x = 2.4e3; var_dump($x);

) echo \"\"; $x = 8E-5; var_dump($x); ?>

boolean(布尔型) 实例:

逻辑是 true 或 false。 $x=true; $y=false;

两种复合类型: array(数组) $arr=array(\'a\',\'b\',\'c\',\'d\',\'e\' );

foreach($arr as &$value)

{

$value=strtoupper($value);

echo $value;

}//输出结果 ABCDE object(对象)

$obj1=(object)\'jiang\';

echo $obj1->scalar;//输出结果jiang (二十一) 运算符和表达式 1.算术运算

2.赋值运算

3.比较运算

4.逻辑运算

5.递增递减运算

PHP第三章总结报告

一、变量的命名规则:在php中变量总是以美元符($)开头,后面紧跟变量名

1、只能由字母,数字,下划线组成。2,、变量名必须以字母或下划线开头。

二、数据类型:

1、boolean(布尔型)理解真假(True/False)

2、integer(整型)

3、float(浮点型)

4、string(字符串)

二、分支逻辑

1、if„„else„„

双分支语句:if(条件A){ (语法)

当满足条件A(即A为true时)执行代码;

}else{

当不满足条件A(即A为false时)执行代码;

} 例: <?php

$mood = 80; if($mood>=60){ echo\"阿勇决定向小美表白!\"; }else{

} ?>echo\"小美心情不好,算了,先安慰她吧。\"; echo\"阿勇决定放弃向小美表白。\";

2、多分支语句: (语法)

if(条件1)

条件1为true时执行的代码;

elseif(条件2){

条件1为false,但条件2为true时执行的代码;

}else if(条件3){

条件

1、2均为false,但条件三为ture时执行的代码;

}

„„

else{

上述条件

1、

2、3„„均为false的情况下所执行的代码;

} <?php $mood; if($mood\"; $mood +=50; }else if($mood\"; $mood += 20; } else { } echo\"小美的心情值为:\".$mood; ?>echo\"原来是骗我的呀!\";

2、switch分支语句 switch(表达式) { case 常量表达式1:

满足常量表达式1时执行的语句; case 常量表达式2:

满足常量表达式2时执行的语句;

case 常量表达式3:

满足常量表达式3时执行的语句; „„ default:

} switch语句执行过程:

1、计算表达式的值。

2、比较表达式的值,与case后的常量表达式的值。

3、执行与表达式值相等的case后的语句,直到break结束。

4、找不到与表达式值相等的case就执行break后的语句。例: <?php

$day =1; switch($day){

case 1: echo \"陪小美看电影!\"; break; 所有常量表达式均不满足时执行的语句;

case 2: echo \"和朋友区KTV唱歌!\"; break;

} ?>case 3: echo \"与同学聚会!\"; break; case 4: echo \"陪小美吃饭!\"; break; case 5: echo \"与朋友打球!\"; break; case 6: echo \"陪小美逛街!\"; break;

case 7: echo \"陪父母!\"; break;

default: echo\"日期出错!\";

三、循环逻辑

1、while循环:(语法) while(循环条件A){

当循环体为true时要执行的代码; } <?php $age = 22; while($age

} echo \"小美当前的年龄: $age \"; echo \"小美终于满25岁啦!可以求婚了!\" ?>echo \"小美还未满25岁,再等等吧。\"; $age++;

2、do„„while循环:(语法)

do{ 需要执行的代码体X; }while(条件A)

注:该语句先执行在判断,无论条件A是否为true,先执行do中的人代码体X,执行后在判断while中的条件是否为ture,

如果为ture,则在执行do中的代码体X,如果为false,则结束语句。 <?php

$total = 20; $salary = 0.5; $month = 0; do {

echo \"工作一个月,攒下了 $total \"; $total += $salary; $manth++; }while ($total\"; echo\"终于可以卖房了!\"; ?>

3、for循环:(语法)

for(表达式1;表达式2;表达式3){ 循环体; } 注:表达式1:循环变量的初始值。

表达式2:循环条件(终止值)。

表达式3:循环变量的变化(循环体)。 for语句的执行过程:

1、计算表达式1.

2、计算表达式2,如果表达式2条件成立,即循环条件成立,就执行一次循环体。

3、计算表达式3,为下一次判断循环条件是否成立做准备,到此完成一次循环。

4、第一次循环结束以后,每次都从计算表达式2开始,进入下一次循环,知道表达式2不成立时结束循环。

注:

1、break表示直接终止当前循环,执行循环后面的操作。

2、continue表示阻断当前循环,直接继续下次循环。例1:打印1~100之间的质数。

<?php for($i=2;$i

} ?>for($j=2;$j

if ($i%$j==0){ } break; }if ($i==$j){ } echo\"$i \"; 例2:打印九九乘法表。

<?php for($i=i;$i

} ?>for($j;$j\"; 例3: <?php $a=10; $b=7; $b=$b--*$a; echo $b; ?>

第18篇:PHP优点

PHP最新职位信息 – 才智尚招聘网

PHP优点

一、学习过程和方法

PHP的语法类似于C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。你只需要很短的时间内将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。PHP是一种为创建HTML内容而设计的简单但是功能强大的语言,本课程非常通俗易懂地讲解了PHP网页的基本概念和设计方法,通过丰富的示例,引导学生逐步掌握PHP,使学生能够亲自上手设计常用的PHP网页.

二、数据库连接

PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是绝佳的组合,如果再加上Apache服务器,就是相当完美的了。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。

三、可扩展性

就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。

四、PHP优点面向对象

PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。

五、PHP优点可伸缩性

传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。

第19篇:当php开发程序员的岗位职责是哪些?

www.daodoc.com

当php开发程序员的岗位职责是哪些?

IT行业到底是不是青春饭?

很多人说IT是吃青春饭的行业,他们的理由如下:

第一,累!经常加班累成狗。IT研发工作的轻松与否和公司、行业有很大的关联,因为IT是朝阳产业,中国的IT产业还处于劳动力紧缺的情况,所以有很多创业公司甚至大型互联网公司为了快速发展提倡加班文化,以至于程序员显得很累。

第二,30岁以后就出现瓶颈,职位很难再有提升。这个问题大多人云亦云,因为同学们很少接触过35岁的IT工程师,不了解他们的工作状态。真实的情况是:大多数工程师很少是只做技术,不与其他人沟通的,因为一个人不可能做完所有的事情,有沟通必然有管理,所以技术和管理是同步进行,项目经理也是工程师,工程师也可以做项目经理。35岁的项目经理,部门经理有很多,所以说为哪些会出现天花板呢?

四川是旅游的天堂,无法拒绝她火辣辣的美食,无法拒绝她惊艳的自然风光,更无法拒绝她的古蜀文化。随着社会进步与发展,女性在职场中扮演的角色愈发重要。她们可以像男人一样拥有自己的事业,叱咤风云。但并不是每个女生都能收获职场成功,对于那些低学历的女生来说,做哪些工作轻松又高薪?

形形色色的it培训相关信息,难免让大家眼花缭乱,但是没关系,经过小编的整理,希望大家能够对其认识更深一步!上述想必大家都早有耳闻了,那么小编就直入正题,给大家介绍一下it培训吧~

www.daodoc.com

php开发是开发语言的一种,而狭义上说就是能够熟练运用php开发开发语言进行网站开发的工作人员。尽管为了提高开发效率,现在的科技企分工越来越明确,很少出现一个程序员同时用多种语言开发的情况。但是往往一个程序员不是仅仅局限某一种开发语言,或用某一种开发语言来划分的。 为了提高开发效率,现在的互联网企业分工越来越明确,很少出现一个程序员同时用多种语言开发的情况。所谓的php开发程序员属于语言开发类的工作人员,主要负责熟练使用php开发语言进行网站开发。

下面具体来讲一下php开发程序员的岗位职责以及岗位要求。 一:岗位职责:

1、负责协助技术总监进行技术评测,bug处理,代码开发;

2、负责网站数据库、栏目、程序模块的设计与开发;

3、负责根据公司要求进行erp、oa、crm系统等项目开发;

4、按时按质完成公司下达程度开发、系统评测等工作任务;

5、定期维护网站程序,处理反馈回来的系统bug;

6、网站程序开发文档的编写。二:岗位要求:

1、良好的代码习惯,要求结构清晰、命名规范、逻辑性强、代码冗余率低;

www.daodoc.com

2、熟悉Mysql,有较为熟练地掌握mysql语言及编写存储过程、触发器等数据库开发的能力;

3、精通php开发语言,精通CGI标准和HTTP等互联网协议;

4、熟练掌握java、div+c等web前端布局及多浏览器兼容相关技术;

5、英文水平过硬,能基本不借助字典快速阅读英文文档;

6、熟练使用Linux或UNIX系统,熟悉在Linux、UNIX下配置php开发+mysql的运行环境;

7、有良好的沟通、协调能力和学习能力,具备良好的团队合作精神,对工作积极严谨踏实,能承受较大的工作压力。

“我们不生产技术,而是教育的传授者,更是it技术的搬运工。欢迎加入成都国信安IT培训基地,我们携手谱写自己的未来!

国信安教育以IT技术相关专业为主要业务方向,自2002年起培养了十余万IT人才,分别就业于:腾讯、华为、卫士通等名企及众多的IT企业。学员在培训期间,还可获得政府给予的相应培训补贴。

国信安IT培训基地指定的官方IT人才培训机构。专注java培训、php开发培训、UI设计培训、IOS培训、安卓培训、嵌入式培训、.NET培训、web前端培训等培训课程。你们准备好怎么学习IT技术了吗?来参加国信安IT培训课程,你的选择不会有错!

第20篇:php个人工作总结

2013个人工作总结(苏江)

时间一晃而过,转眼间到公司已经1月多了。这是我人生中弥足珍贵的一段经历。在这段时间里同事及领导们在工作上给予了我极大的帮助,在生活上给予了我极大的关心,让我充分感受到了同事及领导们“海纳百川”的胸襟,感受到了大发人“不经历风雨,怎能见彩虹”的豪气。在对公司同事及领导们肃然起敬的同时,也为我有机会成为公司的一份子而自豪。 在这一月多的时间里,在领导和同事们的悉心关怀和指导下,通过自身的努力,各方面均取得了一定的进步,现将我的工作情况作如下汇报。

一、通过学习和日常工作积累使我对慧学通教育公司有了一定的新的认识。

在11月中旬我来到了慧学通教育公司参加招聘,经过几轮面试和笔试,终于能够有幸加入了慧学通教育公司这个大家庭,在我进入公司时我拿到的第一份资料就是公司介绍和新员工入职说明,当时只是觉得公司很正规,很强大。在和部门领导以及高层领导的交流后,感觉公司很亲切,很温馨。通过1个月的亲身体会,对慧学通教育公司有了一定了解。公司的理念在平时的工作以及项目开发时体现的淋漓尽致,本人对公司的理念非常认同。公司发展不忘回报社会的壮举,令人敬佩。公司以人为本、尊重人才的思想在实际工作中贯彻,这是慧学通教育公司能发展壮大的重要原因。

二、遵守各项规章制度,认真工作,使自己素养不断得到提高。

爱岗敬业的职业道德素质是每一项工作顺利开展并最终取得成功的保障。在这1个多月的时间里,我能遵守公司的各项规章制度,兢兢业业做好本职业工作,1个多月来从未迟到早退,用满腔热情积极、认真地完成好每一项任务,认真履行岗位职责,平时生活中团结同 事、不断提升自己的团队合作精神。

三、认真学习岗位职能,工作能力得到了一定的提高。

根据目前工作分工,我的主要工作任务是(1)参与公司网站项目的开发与测试;(2)负责慧学通加盟网站的工作。通过上述工作,使我认识到一个称职的开发人员应当具有良好的语言表达能力、扎实的技术能力、较强的逻辑处理能力、灵活的应变问题能力、有效的对

外联系能力。在参与项目开发的过程中,发现很多看似简单的工作,其实里面还有很多技巧。

四、不足和需改进方面。

虽然加入公司这个大家庭已经1月有余,对发现问题的处理还不是很全面,对分工的工作还没有形成系统的计划。随着对公司和工作的进一步熟悉,我也希望能够在今后的工作中更加迅速的提升自己的业务能力以及技术能力,我觉得多做一些工作更能体现自己的人生价值。“业精于勤而荒于嬉”,在以后的工作中我要不断学习业务知识,通过多看、多问、多学、多练来不断的提高自己的各项业务技能。学无止境,时代的发展瞬息万变,各种学科知识日新月异。我将坚持不懈地努力学习各种知识,并用于指导实践。在今后工作中,要努力做好开发人员的本职工作,把自己的工作创造性做好做扎实,为项目的开发以及公司的发展贡献自己的力量。

五、工作计划 暂时做出以下几点规划:\\

1、要提高工作的主动性,做事干脆果断,不拖泥带水;

2、工作要注重实效、注重结果,一切工作围绕着目标的完成;

3、要提高大局观,是否能让其他人的工作更顺畅作为衡量工作的标尺;

4、把握一切机会提高专业能力,加强平时知识总结工作;

5、精细化工作方式的思考和实践。

6、虚心请教比我做的优秀的其他同事,向他们学习技术或经验。

其实作为一个新员工,所有的地方都是需要学习的,多听、多看、多想、多做、多沟通,向每一个员工学习他们身上的优秀工作习惯,丰富的专业技能,配合着实际工作不断的进步,不论在什么环境下,我都相信这两点:一是三人行必有我师,二是天道酬勤。 在参加工作的这短短的一个半月中,我深刻的体会到,把自己所有的精力都投入进去,技术工作都不可能做到完美程度,毕竟技术工作太繁杂,项目多而人手少,但多付出一些,工作就会优化一些,这就需要认认真真沉下心去做事情,就是公司所提倡的企业精神:职业做事,诚信待人

加盟部:苏江

2013年12月31日

php岗位职责
《php岗位职责.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档