PHP一、选择题1、执行下面的代码后,<?phpecho function_exists('print');?>得到的输出是:A.空 B.true C.false D.FALSE2、下面代码的执行结果是什么?<?phpecho1+2+"3+4+5";?>A.0B.3C.6D."33+4+5";3、下面代码的输出正确的是:<?php$a=array(1=>5,5=>8,22,2=>'8',81);echo$a[7];echo$a[6];echo$a[3];?>A.空2281B.空8122C.8122空D.空空空4、执行完以下代码后,变量$num的值为( ) <?php$num = 10;function demo($num){$num= $num + 20;}demo (&$num);echo $num;?>A. 10B. 20C. 30D. 显示错误5、下面代码的输出结果:<?php$a[bar]='hello';echo $a[bar];echo$a['bar'];?>A.helloB.空空C.报错D.hellohello注:如果没有加引号,php可以把常量自动转为字符串,但是效率会降低,大约8倍左右6、下面代码的执行结果:<?phpfor($i=0;i<10;$i++){print $i;}?>A.0123456789B.012345678910C.无输出D.死循环注:第二个参数少$,所以不是变量是常量,常量转化成字符串在转化成数字为0,0<10,所以一直循环下去7、下面代码的执行结果:<?php$foo='test';$bar = <<<'EOT'$foobarEOT;echo $bar;?>上面的语句输出结果():A.$foobar;B.'EOT'$foobarEOT;C.testbar;D.'EOT'testbarEOT;8、下面代码$b的值是:<?php$a=3;$b=4;if($a||$b=5){echo 'todo';}?>A.4;B.5;C.3;D.false注: $a=3;3是布尔型真所以就不往后执行,所以$b还是49、若x,y为int类型变量,则执行以下语句后,y的值为( )<?php$x = 1; ++ $x; $y = $x++;?>A. 1B. 2C.3D. 010、下列代码执行后,输出结果正确的是( C )<?phpfunction sum( ){$result = 1;$result++;}sum( );echo $result;?>A. 1B. 2C.运行错误 D 都不对二、填空题1. PHP的构造函数是_ __construct ()__。
2. 访问类属性必须通过__$this->___的方式进行访问。
3. 访问类中静态成员或函数应通过特殊类__类名::____或__self:______进行访问。
4. cookie存储在__客户端__,session是将数据存储在_服务器端__,会话的生命周期默认为__24分钟___。
5. 表单的提交方式有_GET__ 和 __POST____。
6. PHP5支持的两种复合数据类型是:__数组_ 和 __对象__。
7. 面向对象编程的主要特征有__封装__、__继承__ 和 __多态___。
8. 显示当前执行的PHP程序文件名的内置常量是_ _file_ ___。
9. MySQL服务器的默认连接端口是_____3306_______。
10. PHP程序中跳出目前执行的循环的语句是___break__。
11. MySQL数据库中可使用___ GRANT ___ 语句增加新用户并限制用户访问数据库的权限。
12. MySQL数据库查询操作中可使用_ ORDER BY 子句指定查询结果的排序规则。
13. 在HTML表单中设置数组的方法:__在输入控件的name属性的名称后面加上一对中括号[]___14、数组函数arsort 的作用是__对数组进行逆向排序并保持索引关系__;15、语句error_reporting(2047)的作用是__报告所有错误和警告__。
16、以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
LoadModule php5_module “c:/php/php5apache2.dll”, AddTypeapplication/x-httpd-php .php,17、为了避免多次包含同一文件,可以用语句__require_once||include_once__来代替它们。
18、一个函数的参数不能是对变量的引用,除非在php.ini中把__allow_call_time_pass_reference boolean__设为on.19、抓取远程图片到本地,你会用什么函数? fsockopen20、判断一个变量是否存在的函数:isset判断一个变量是否为null的函数:is_null判断一个变量是否为空的函数:empty销毁一个变量的函数:unsetApache1. 什么是Apache web 服务器?答案 : Apache web 服务器 HTTP 是一个非常流行、功能强大并且开源,用于管理web 站点并向网络提供web 文件服务. 它基于 HTTP 超文本传输协议运行, 这一协议提供了服务器和客户端web 浏览器通信的标准. 它支持 SSL, CGI 文件, 虚拟主机还有许多其它的功能特性.2. 如何检查 Apache 及其版本?答案 : 首先,使用rpm 命令来检查Apache 是否已经安装. 如果已经安装好了,那就使用httpd -v 命令来检查它的版本.1 2 3 4 5 [root@tecmint ~]# rpm -qa | grep httpdhttpd-devel-2.2.15-29.el6.centos.i686httpd-2.2.15-29.el6.centos.i686httpd-tools-2.2.15-29.el6.centos.i6861 2 3 4 [root@tecmint ~]# httpd -vServer version: Apache/2.2.15 (Unix)Server built: Aug 13 2013 17:27:113. Apache 以那个用户运行? 主配置文件的位置在哪里?.答案 : Apache 以“nobody”用户和httpd 守护进程运行. Apache 主要的配置文件在: /etc/httpd/conf/httpd.conf (CentOS/RHEL/Fedora) 还有/etc/apache2.conf (Ubuntu/Debian).4. Apache 侦听 http 和 https 请求?答案 : Apache 默认在80端口侦听http ,在443端口侦听https(需要SSL 整数). 你也可以使用 netstat 命令 来检查端口.1 2 3 4 [root@tecmint ~]# netstat -antp | grep httptcp 0 0 :::80 :::* LISTEN 1076/httpd tcp 0 0 :::443 :::*LISTEN 1076/httpd5. 如何在你的Linux 机器上安装Apache 服务器?答案 : 很简单, 你可以使用任何诸如(RHEL/CentOS/Fedora)上的yum 以及(Debian/Ubuntu)上的apt-get 来在你的Linux 上安装Apache 服务器. 1 [root@tecmint ~]# yum install httpd1 [root@tecmint ~]# apt-get install apache26. 你可以在哪里找到Apache Web 服务器的所有配置路径?答案: Apache 默认的配置路径放在: (RHEL/CentOS/Fedora) 中是在 /etc/httpd/ on 而 (Debian/Ubuntu) 是在/etc/apache2下 .1 2 3 4 5 6 7 8 [root@tecmint ~]# cd /etc/httpd/[root@tecmint httpd]# ls -l total 8 drwxr-xr-x. 2 root root 4096 Dec 24 21:44 conf drwxr-xr-x. 2 root root 4096 Dec 25 02:09 conf.d lrwxrwxrwx 1 root root 19 Oct 13 19:06 logs -> ../../var/log/httpd lrwxrwxrwx 1 root root 27 Oct 13 19:06 modules -> ../../usr/lib/httpd/modules lrwxrwxrwx 1 root root 19 Oct 13 19:06 run -> ../../var/run/httpd1 2 3 4 5 6 7 8 9 [root@tecmint~]# cd /etc/apache2 [root@tecmintapache2]# ls -l total 84-rw-r--r-- 1root root 7113 Jul 24 16:15 apache2.conf drwxr-xr-x 2root root 4096 Dec 16 11:48 conf-available drwxr-xr-x 2root root 4096 Dec 16 11:45 conf.d drwxr-xr-x 2root root 4096 Dec 16 11:48 conf-enabled -rw-r--r-- 1root root 1782 Jul 21 02:14 envvars -rw-r--r-- 1 root root 31063 Jul 21 02:14 magic10 11 12 13 14 drwxr-xr-x2 root root 12288 Dec 16 11:48 mods-available drwxr-xr-x2 root root 4096 Dec 16 11:48 mods-enabled -rw-r--r--1 root root 315 Jul 21 02:14 ports.conf drwxr-xr-x2 root root 4096 Dec 16 11:48 sites-available drwxr-xr-x 2 root root 4096 Dec 6 00:04 sites-enabled7. Apache 可以被TCP 封装器固定吗?答案 : 不可以,它不可以被TCP 封装器固定下来,因为它不支持Linux 的libwrap.a 库.8. 如何在Apache 中改变默认的端口,以及如何侦听其中的指令工作?答案 : 在httpd.conf 文件中有一个指令“Listen”可以让我们改变默认的Apache 端口. 在Listen 指令的帮助下我们可以在不同的端口还有不同的接口进行Apache 侦听.假设你拥有多个IP 注册到了你的Linux 机器,并且想要Apache 在一个特殊的以太网端口或接口接收HTTP 请求, 即使是这种要求也可以用Listen 指令做到. 为了改变Apache 的默认端口,请使用打开你的Apache 主配置文件 httpd.conf 或者 apache2.conf .1 2 3 [root@tecmint ~]# vi /etc/httpd/conf/httpd.conf[root@tecmint ~]# vi /etc/apache2/apache2.conf查找”Listen ”这个单词, 注释原来的那一行并且在那一行下面写上你自己的指令.1 2 3 4 5 6 # Listen 80Listen 8080ORListen 172.16.16.1:8080保存文件并重启web 服务器.1 2 3 [root@tecmint ~]# service httpd restart[root@tecmint ~]# service apache2 restart9. 我们可以一台机器上放两个Apache Web 服务器么?答案 : 可以,我们在一台Linux 机器上同时运行两个不同的Apache 服务器, 但条件是它们应该在不同的端口上侦听,而我们可以使用Apache 的Listen 指令来改变端口.10. 你知道Apache 的DocumentRoot 是啥意思么?答案 : DocumentRoot 的 Apache 意思是服务器上web 文件的存储位置, 默认的DocumentRoot 是 /var/www/html 或者 /var/www. 这是可以被修改的,只要修改主机中的虚拟主机配置 “DocumentRoot”就行了.11. 如何在不同的文件夹下面管理文件,还有什么是 Alias 指令?答案 : 是的,这可以借助于主Apache 配置文件中的Alias 指令做到. Alias 指令可以对文件系统中的资源按图索骥, 它使用一个URL 路径,并且使用重定向到系统上的一个文件或目录来替换它.使用Alias 指令,它是Apache 的 mod_alias 模块的一部分. Alias 指令的默认语法是:1 A lias /images /var/data/images/上面的示例中, 放在/var/data/images 前缀前面的 /images url 的意思是客户端请求“/images/sample-image.png ” 会让Apache 从服务器上的/var/data/images/sample-image.png 取“sample-image.png ” 文件. 它也被称为URL 映射.12. 对于“DirectoryIndex”你是怎么理解的?答案 : DirectoryIndex 是当有一个来自主机的请求时Apache 首先会去查找的文件. 例如: 客户端发送请求, Apache 对此将到站点的文件根目录查找index 文件 (首先要展示的文件).DirectoryIndex 的默认设置是 .html index.html index.php , 如果不是这个名字, 你需要对 httpd.conf 或者 apache2.conf 中的 DirectoryIndex 值做出修改,以将其展示在你的客户端浏览器上. 1 2 3 4 5 6 ##DirectoryIndex: sets the file that Apache will serve if adirectory #is requested. ## The index.html.var file (a type-map) is used to deliver7 8 9 content-# negotiated documents. The MultiViews Option can be used for the# same purpose, but it is much slower.#DirectoryIndex index.html index.html.var index.cgi .exe13. 当index 文件丢失时如何使目录列表失效?答案 : 如果站点根目录中的主index 文件失效, 那么Apache 将会在浏览器上列出所有内容类似的文件,以替换站点主页.为了关闭Apache 目录列表, 你可以在主配置文件中全局的设置,或者在.htaccess 文件中部分的设置如下规则.1 2 3 <Directory /var/www/html>Options -Indexes</Directory>14. Apache Web 服务器有些什么不同的日志文件?答案 : Apache Web 服务器的默认日志文件是访问日志 “/var/log/httpd/access_log” 和错误日志:/var/log/httpd/error_log”.15. 你是怎样理解错误日志中的“connection reset by peer”的?答案 : 当服务器正在向请求提供服务时终端用户中断连接, 我们就会在错误日志中看到“connection reset by peer“.16. 什么是Apache 的虚拟主机?答案 : 虚拟主机部分包含的信息包括站点名称,文档根路径,目录索引,服务器管理员邮箱,错误日志文件路径等等。