《PHP程序设计》复习题

  1. 请写出HTML标记meta的完整英文单词: metadata 。
  2. 相当于http文件头作用(向浏览器传回一些帮助正确和精确地显示网页内容的信息)的meta标记的属性是 http-equiv 。
  3. PHP的全称是: PHP: Hypertext Preprocessor 。
  4. PHP的两种运行方式是: CGI 和 mod_php 。
  5. 以mod_php模式运行PHP,为什么每次修改php.ini的配置信息都需要重启apache,配置才生效?
    以mod_php模式运行PHP,意味着php是作为apache的一个模块来启动的,因此只有在apache启动的时候会读取php.ini配置文件并加载扩展模块,在apache运行期间是不会再去读取和加载扩展模块的。

  6. PHP中echo的功能是什么?
    将PHP后台运行得到的数据输出到浏览器页面中。
  7. $str="加油"; 则(1) echo '中国$str!'; 输出 中国$str! , (2) echo "中国$str!"; 输出 中国加油! 。
  8. 其它类型的变量转换为布尔类型时,哪些值被认为是false?
    布尔值false,整型值0,浮点型值0.0,空白字符串,字符串'0', 空数组,特殊数据类型NULL, 没有设定的变量。
  9. 在浏览器中运行以下PHP代码,在三个文本框中依次分别输入1、2、3,则浏览器页面输出 sparkqty321。




    <?php
    foreach ($_POST as $key => $value) {
    $$key = $value;
    }
    echo $key; echo $sparkqty; echo $oilqty; echo $tireqty;
    ?>
  10. 和C不同,PHP函数内访问函数外申明的全局变量,必须在函数开始处用 global 申明。
  11. PHP中常用的几个预定义变量(全局数组)是哪些?
    $_POST, $_GET, $_REQUEST, $_SESSION, $_COOKIE, $_FILES,$_SERVER, $_ENV, $GLOBALS
  12. PHP中常用的几个预定义常量(魔术常量)是哪些?
    LINEFILEDIRFUNCTIONCLASSTRAITMETHODNAMESPACE
  13. 数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的声明方式主要有哪两种?

(1) 数组是一个可以存储一组或一系列数值的变量(复合型变量);(2) 索引数组(索引值为数字,以 0 开始)和关联数组(以字符串作为索引值);(3) 数组的声明方式主要有两种:A. 通过 array( )函数声明数组,可以通过 key=>value的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。B. 直接为数组元素赋值,不需要调用array( )函数。例如:$arr[0] = 1; $arr[1] = 2;

  1. 数组合并函数array_merge( )和数组加法运算$arr1 + $arr2 的区别是什么?
    使用array_merge( ),如果是关联数组合并,如果数组的键名相同,那么后面的值将覆盖前者;如果是数字索引数组合并,则不覆盖,而是后者附加到前者后面。使用数组加法运算,与 array_merge( )不同,加法运算不管是关联数组还是数字索引数组,都是将相同键名的值舍弃,也就是只保留首次出现该键名的元素,后来的具有相同键名的元素都不会被加进来。
  2. 简述array compact(mixed $varname [, mixed ...])函数的功能。
    把一个或多个变量,建立成数组元素,这些数组元素的键名就是变量的变量名,值是变量的值。
  3. 简述PHP数组转换为字符串、字符串转换为数组的方法。
    explode ( string $separator , string $string [, int $limit ] ) 使用一个分隔字符来分隔一个字符串。
      implode ( string $glue , array $arr ) 使用一个连接符将数组中的每个单元连接为一个字符串。

  4. 以下留言功能的代码存在页面被篡改(XSS攻击)的漏洞,请用简单过滤的方法写出防止页面被篡改的完整代码。

    您的Email地址:


    您的留言:




    <?php
    $Email=$_POST['Email'];
    $note=$_POST['note'];
    echo "用户".$Email."您好! ";
    echo "
    您的留言是:
        ".$note."
    ";
    ?>
  5. 验证身份证号码规则的正则表达式是: #^[0-9]{17}([0-9]|X|Y)$# 。
  6. 简述PHP函数file_get_contents( )的功能。
    与依次调用fopen( )、fwrite( )及fclose( )函数的功能一样,默认是直接覆盖原有文件的内容。
  7. 要使HTML表单生成文件上传变量必须满足哪3个条件?

(1) 必须使用POST方式提交(设置表单 method="post" );(2) 必须设置表单enctype属性为 enctype="multipart/form-data" ;(3) 表单中要有一个文本域控件。

  1. 由HTML表单生成文件上传变量,PHP以数组的形式记录了上传文件的详细信息,这个预定义变量(全局数组)是___$_FILES['上传控件的name'][ 'name'|'type'|'tmp_name'|'size'|'error'] 。
  2. Cookie运行在客户端,Session运行在服务器端,对吗?
    不完全正确。Cookie是运行在客户端,由客户端进行管理;Session虽然是运行在服务器端,但是sessionID作为一个Cookie是存储在客户端的。
  3. Session 比Cookie更安全吗?不应该大量使用Cookie吗?
    错误。Cookie确实可能存在一些不安全的因素,但和JavaScript一样,即使突破前端验证,还有后端保证安全。所以,一切都要看设计。如果说不安全,也是由于代码不安全,错误地把身份验证的Cookie作为权限验证来使用。
  4. 如果把别人的机器上的Cookie复制到我的电脑上(假设使用相同的浏览器),是不是能够登录别人的账号?
    是的。这属于Cookie劫持的一种做法。
  5. 在URL中用get传值的时候,若中文出现乱码,应该用哪个函数对中文进行编码?
    使用urlencode()对中文进行编码,使用urldecode()来解码。
  6. PHP中访问类中静态成员或函数应通过 类名:: 或self::进行访问。
  7. 继承是代码复用的一种重要机制,但继承破坏了封装性,不恰当的继承还可能违反现实世界的逻辑。PHP采用了一种更新进的代码复用机制,它用一致的方式来组合对象,增加了水平特性,这种机制就是PHP的 Traits机制 。
  8. PHP目前不支持方法重载,但可以用魔术方法 __ _call 来实现类似于方法重载的功能。
  9. 有关系模式:cjb(学号, 课程号, 成绩),把SQL语言:select * from cjb a where 成绩<(select avg(成绩) from cjb b where b.课程号= a.课程号),翻译成中文 查询考试成绩比该课程平均成绩低的学生的学号、课程号、成绩。 。
  10. 说说mysql_fetch_row( ) 和mysql_fetch_assoc( )和mysql_fetch_array( )之间有什么区别?
    第一个是返回结果集中的一行作为索引数组(键名是数字的数组称之为索引数组),第二个是返回关联数组(至少有一个键名是字符串的数组称之为索引数组),而第三个既可以返回索引数组也可以返回关联数组,取决于它的第二个参是MYSQL_BOTH或MYSQL_NUM或MYSQL_ASSOC 默认为MYSQL_BOTH。
  11. exec ( )方法是 PDO 类的方法,execute ( )方法是 PDOStatement 类的方法。
  12. 简述什么是事务处理以及PHP中PDO事务处理的实现过程。
    事务处理:通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。PDO事务处理的实现过程:首先定义数据库连接的参数,创建try{ }catch{ }语句,在try{ }语句中实例化PDO构造函数,完成与数据库的连接,并且通过beginTransaction( )方法开启事务;然后写事务处理业务逻辑代码,通过commit( )方法完成事务的提交操作;最后在catch{ }语句中返回错误信息,并且通过rollback( )执行事务的回滚操作。
  13. 什么是Ajax?Ajax的原理是什么?Ajax的核心技术是什么?Ajax的优缺点是什么?
    Ajax是Asynchronous JavaScript and XML的缩写,是JavaScript、XML、CSS、DOM等多个技术的组合。Ajax的工作原理是一个页面的指定位置可以加载另一个页面所有的输出内容,这样就实现了一个静态页面也能获取到数据库中的返回数据信息了。所以Ajax技术实现了一个静态网页在不刷新整个页面的情况下与服务器通信,减少了用户等待时间,同时也从而降低了网络流量,增强了客户体验的友好程度。
    Ajax的核心技术是XMLHttpRequest,它是JavaScript中的一个对象。Ajax的优点是:(1)减轻了服务器端负担,将一部分以前由服务器负担的工作转移到客户端执行,利用客户端闲置的资源进行处理;(2)在只局部刷新的情况下更新页面,增加了页面反应速度,使用户体验更友好。Ajax的缺点是不利于SEO推广优化,因为搜索引擎无法直接访问到Ajax请求的内容。

猜你喜欢

转载自www.cnblogs.com/qichunlin/p/9303008.html