php 面试题中华文本库,PHP 面试题

请写出以下html标签的含义:

input

form

script

style

table

b

img

============================================================标签

用于搜集用户信息。

根据不同的type属性值,输入字段拥有很多种形式。

输入字段可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等。

============================================================

标签

用于为用户输入创建HTML表单。表单能够包含input元素,

比如文本字段、复选框、单选框、提交按钮等等。

============================================================

用于定义客户端脚本,

比如JavaScript。

script元素既可以包含脚本语句,也可以通过src属性指向外部脚本文件。

用于为HTML文档定义样式信息。

定义HTML表格。简单的HTML表格由table元素以及一个或多个tr、th或td元素组成。

呈现粗体文本效果。

元素向网页中嵌入一幅图像。

14.用css、html编写一个两列布局的网页,右侧固定宽度200px,左侧自适应

html页面

content自适应区

sidebar固定宽度区

底部

css页面#wrap {*zoom:1;position: relative;}

#sidebar {width: 200px;float:right;border:1px solid #CCC;}

#content {margin-left:-210px;float:left;width:100%;}

#contentb {margin-left:210px;border: 1px solid #CCC;height:240px;}

#footer {border:1px solid #CCC;margin-top:10px;clear:both;}

JavaScript部分

1.JS表单弹出对话框函数是?获得输入焦点函数是?弹出对话框函数:

alert(),

prompt(),

confirm()

获得输入焦点函数:

focus()

2.JS的转向函数是?怎么引入一个外部JS文件?转向使用

window.location.href=""

引入外部js使用

3.解释下面语句的意思:document.form["formName"].submit获取name为formName的表单并将该表单数据提交到服务器。但这行代码是不能运行的,有两处错误,

一是通过表单名称来获取表单得到时候,应该写成document.forms[‘formName’],

二是提交表单事件使用submit方法

例如:document.forms["login"].submit()

4.有下面语句:编写代码,

当鼠标划过文本框,自动选中文本框中的内容。

function mOver(n)

{

obj =document.getElementById(n);

//obj.focus();

obj.select();

}

5.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。

主窗口

新窗口

var a1 = document.getElementById("a1");

a1.onclick = function(){

window.open("result.php","new","location=no,toolbar=no");

return false;

}

弹出全屏窗口

opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用。html>

你好,世界!

var btn = document.getElementById("btn");

var message = document.getElementById("m1");

btn.οnclick=function(){

var div =window.opener.document.getElementById("msg");

div.innerHTML=message.value;

window.close();

}

8.用JavaScript写一个函数,其功能是可以删除数组中重复的元素。

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

slice() 方法可从已有的数组中返回选定的元素。

function unique(arr){

var result= arr;

for(var i=0;i

for(var j=0;j

temp =arr[i];

if((i+j+1)

result.splice(i+j+1,1);

}

}

}

return result;

}

var a = [2,4,3,8,5,33,8,4,false,"",{}];

var b = unique(a);

alert(b);

12.如何添加html元素的事件,有几种方法,举例(1).直接作为元素的属性,如

(2).使用DOM 0级事件,简单,兼容性好,如img.οnclick=function(){}

(3).使用DOM 2级事件,功能更强大,在非IE等标准浏览其中,

使用addEventListener,在IE浏览器中则使用attachEvent来实现。

13.JavaScript能否定义二维数组,如果不能你如何解决?JavaScript不支持二维数组定义,可以用arr[0]=newarray()来解决。

14.假设a.html和b.html在同一个文件夹下面,用JavaScript实现当打开a.html

五秒钟后,自动跳转到b.html。

function gotoB(){

window.location.href="http://www.baidu.com";

window.close();

}

setTimeout("gotoB()",5000);//设置5秒跳转

15.请使用JavaScript写出三种产生一个image标签的方法(提示:从方法、对象、HTML角度考虑)(1).var img=new Image();

(2).var img=document.createElement("image")

(3).img.innerHTML=""

16.js中网页前进和后退的代码前进:history.forward();或者history.go(1);

后退:history.back();或者history.go(-1);

17.请写出一条至少3个节点的DOM树

var div = document.createElement("div");

var a = document.createElement("a");

a.href="http://www.baidu.com";

var span=document.createElement("span");

span.innerHTML="百度";

a.appendChild(span);

div.appendChild(a);

document.body.appendChild(div);

18.实现点击按钮弹出窗口的代码

document.getElementById("btn").οnclick=function (){

window.open("http://www.baidu.com");

//document.write("ok");

};

19.JavaScript包括那些基本数据类型?JavaScript中包括5种基本数据类型,分别是Number,String,Boolean,Null和Undefined。

PHP语言基础

1.strlen()与mb_strlen()的作用分别是什么

strlen和mb_strlen都是用于获取字符串长度的,

其中strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数,

如果是多字节编码,如gbk和utf8,使用strlen得到的不是字符的个数,而是该字符的总字节数,

可以使用mb_strlen获取其字符个数,

使用mb_strlen要注意两点,

一是要开启mbstring扩展,

二是要指定字符集。

相关题目1:实现中文字串截取无乱码的方法。<?php

header("Content-Type:text/html;charset=utf-8");

$str = "i love u";

echo strlen($str);//8

$str1 = "津沙港湾";

echo strlen($str1);//12

echo mb_strlen($str1);//12

echo mb_strlen($str1,"utf-8");//4

//直接使用内置php函数mb_substr()

echo mb_substr($str1, 1,2,"utf-8");

//自定义函数截取中文字符

function substr_utf8($str,$start,$length=null){

return implode("", array_slice(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length));

}

echo substr_utf8($str1, 1);

?>

如何求解字符串“中国2北333京”的字符数(一个中文一个字符),并找到第四个字符“北”//方法一,使用php内置函数,确保配置中已打开mbstring扩展

header("Content-Type:text/html;charset=utf-8");

$str1 = "中国2北333京";

echo mb_strlen($str1,"utf-8");

echo mb_substr($str1, 3,1,"utf-8");

?>

4.写出下列几个预定义全局变量的作用$_SERVER["DOCUMENT_ROOT"]//当前运行脚本所在的文档根目录

$_SERVER["HTTP_HOST"]//当前请求的Host:头部的内容

$_SERVER["REMOTE_ADDR"]//正在浏览当前页面用户的IP地址

$_SERVER["HTTP_REFERER"]//链接到当前页面的前一页面的URL地址

$_SERVER["SERVER_NAME"]//当前运行脚本所在服务器主机的名称

$_FILES//包含有所有上传的文件信息

S_FILES["userfile"]["name"]//客户端机器文件的原名称

$_FILES["userfile"]["type"]//文件MIME类型,如果浏览器提供此信息的话,如“image/gif”。

$_FILES["userfile"]["size"]//已上传文件的大小,单位为字节

$_FILES["userfile"]["tmp_name"]//文件被上传后在服务端储存的临时文件名

$_FILES["userfile"]["error"]//和该文件上传相关的错误代码

5.include和require都能把另外一个文件包含到当前文件中,他们有什么区别?

include和include_once又有什么区别?二者区别只有一个,那就是对包含文件的需求程度,

include就是包含,

如果被包含的文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。

require意思是需要,

如果被包含文件不存在或者无法打开的时候,则会提示错误,并且会终止程序的执行。

这两种结构除了在如何处理失败之外完全一样。

在如何处理失败时,

include()产生一个警告

require()则导致一个致命错误

once的意思是一次,那么include_once和require_once表示只包含一次,避免重复包含。

6.用最少的代码写一个求3值最大值的函数<?php

header("Content-Type:text/html;charset=utf-8");

function maxt($a,$b,$c){

//return $a>$b?($a>$c?$a:$c):($b>$c?$b:$c);

return ($a>$b?$a:$b)>$c?($a>$b?$a:$b):$c;

}

echo maxt(3,-2,122);

?>

7.简述POST和GET传输的最大容量分别是多少?POST根据你php.ini文件配置(默认是8M)

GET的话大小限制在2KB

表单中get与post提交方法的区别?get是发送请求HTTP协议通过url参数传递进行接收,

post是实体数据,可以通过表单提交大量信息。

9.echo(),print(),print_r() printf()的区别?echo

是一个语言结构,输出一个或多个字符串;

print()

实际上不是一个函数(它是一个语言结构),

因此你可以不必使用圆括号来括起它的参数列表,它输出一个字符串;

print_r()

是一个函数,打印变量的信息,基本类型,数组,对象。

printf ― 输出格式化字符串

在实际使用中, print 和 echo 两者的功能几乎是完全一样。

可以这么说,凡是有一个可以使用的地方,另一个也可以使用。

但是,两者之间也还是一个非常重要的区别:

在 echo 函数中,可以同时输出多个字符串,

而在 print 函数中则只可以同时输出一个字符串。

同时,echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。

echo 和 print 都不是函数,而是语言结构,所以圆括号都不是必需的。他们的区别在于:

(1) echo可以输出多个字符串,像下面这样:

echo "a","b","c";

如果你非要加上圆括号,

注意写成  echo ("a","b","c");是错误的,

应该写成:echo ("a"),("b"),("c");

它没有像函数的行为,所以不能用于函数的上下文

(2) print只能输出一个字符串,它可以表现得像一个函数,比如你可以如下使用:

$ret = print "Hello World";

所有它能用在更复杂的表达式中。

另外,echo的效率相对比较快~

如下代码:

$a="hello ";

$b="php world!";

echo $a,$b."
";

//echo 可以用逗号分隔字符串变量来显示print $a.$b."
";

//而print不能使用逗号,只能用点号分隔,print $a,$b."
";//使用逗号时报错。

?>

echo    命令和    print    命令    相同,没有区别

echo    函数    和    print    函数    有区别。

echo()    无返回值,与echo    命令相同

print()    有返回值,成功,返1,false,返0.

printf()    和    sprintf()    类似,

均为格式化输出,不同的是

前者输出到标准输出,

后者输出到变量

echo与print在使用逗号和点号区别<?php

header("Content-Type:text/html;charset=utf-8");

$a = 9;

$b = 10;

echo $a.$b;

echo $a,$b;

print $a.$b;

//print $a,$b;//这个逗号不行,会报错

10.用PHP打印出前一天的时间格式是2006-5-10 22:21:21<?php

header("Content-Type:text/html;charset=utf-8");

echo date("Y-m-d H:i:s",time()-3600*24);//方法一

echo "
";

echo date("Y-m-d H:i:s",strtotime("-1 day"));//方法二

求两个日期的差数,例如2009-3-1~2009-4-4的日期差数<?php

header("Content-Type:text/html;charset=utf-8");

echo (strtotime("2009-4-4")-strtotime("2009-3-1"))/(3600*24);

11.不使用第三个变量交换两个变量的值substr()方法<?php

header("Content-Type:text/html;charset=utf-8");

//变量是字符串类型

$a = "abc";

$b = "efg";

$a .=$b;

//substr()方法

$b = substr($a, 0,(strlen($a)-strlen($b)));

$a = substr($a,Strlen($b));

echo $a;

echo "
";

echo $b;

2.str_replace()方法<?php

header("Content-Type:text/html;charset=utf-8");

//变量是字符串类型

$a = "abc";

$b = "efg";

$a .=$b;

//str_replace()方法

$b = str_replace($b, "", $a);

$a = str_replace($b, "", $a);

echo $a;

echo "
";

echo $b;

3.list()和array()方法<?php

header("Content-Type:text/html;charset=utf-8");

//变量是字符串类型

$a = "abc";

$b = "efg";

//list()和array()方法

list($b,$a)=array($a,$b);

echo $a;

echo "
";

echo $b;

4.字符串和数字都适用 使用异或运算<?php

header("Content-Type:text/html;charset=utf-8");

//变量是字符串和数字都适用

$a = "abc";

$b = "efg";

//异或方法

$a = $a ^ $b;

$b = $a ^ $b;

$a = $a ^ $b;

echo $a;

echo "
";

echo $b;

5.只适用于数字<?php

header("Content-Type:text/html;charset=utf-8");

//变量是数字类型

$a = 5;

$b = 6;

$a = $a +$b;

$b = $a - $b;

$a = $a - $b;

echo $a;

echo "
";

echo $b;

6.利用explode()方法<?php

header("Content-Type:text/html;charset=utf-8");

//变量是字符和数字类型

$a = "津沙港湾2016";

$b = "崎沙火山岛0915";

$a = base64_encode($a);

$b = base64_encode($b);

$a = $a."&".$b;

$b = explode("&", $a);

$a = base64_decode($b[1]);

$b = base64_decode($b[0]);

echo $a;

echo "
";

echo $b;

12.请说明php中传值与传引用的区别。什么时候传值什么时候传引用?变量默认总是传值赋值。

那也就是说,

当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。

这意味着,

例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。

PHP也提供了另外一种方式给变量赋值:引用赋值。

这意味着新的变量简单的引用(换言之,“成为其别名”或者“指向”)了原始变量。

改动新的变量将影响到原始变量,反之亦然。

使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)。

对象默认是传引用。

对于较大的数据,传引用比较好,这样可以节省内存的开销。

13.将1234567890转换成1,234,567,890每3位用逗号隔开的形式。

方法一用php内置函数<?php

header("Content-Type:text/html;charset=utf-8");

$a = "1234567890";

echo number_format($a);

方法二自定义函数<?php

header("Content-Type:text/html;charset=utf-8");

//变量是字符和数字类型

$a = "1234567890";

function nformat($str){

$n = ""; //临时变量

$m = strlen($str); //获取字符串长度

$k = $m % 3;

// echo $k."
";

for($i=0;$i 

if($i%3==$k &&$i!=0){

$n .= ",";

}

$n .= $str{$i};

}

return $n;

}

echo  nformat($a);

方法三chunk_split()方法 这个方法处理不了中文字符串<?php

header("Content-Type:text/html;charset=utf-8");

//变量是字符和数字类型

$a = "1234567890ssvm";

function nformat($str){

$str = strrev($str);

$str = chunk_split($str,3,",");

echo $str."
";

$str = strrev($str);

$str = ltrim($str,",");

return $str;

}

echo  nformat($a);

方法四转成数组 使用中文字符串<?php

header("content-type:text/html;charset=utf-8");

/**

此函数的作用是适用中文字符串加千分号

*/

function nformat($str){

//判断输入的是不是utf8类型的字符,否则退出

if(!is_string($str)||!mb_check_encoding($str,"UTF-8")){

exit("输入类型不是UTF8类型的字符串");

}

$array=array();

//将字符串存入数组

$l=mb_strlen($str,"UTF-8");

for($i=0;$i

$array[]=mb_substr($str,$i,1,"UTF-8");

}

$n = ""; //临时变量

$m = count($array); //获取数组长度

$k = $m % 3;

for($i=0;$i 

if($i%3==$k &&$i!=0){

$n[]= ",";

$n[]=$array[$i];

continue;

}

$n[]=$array[$i];

}

$string = implode($n);

return $string;

}

$str = "1234adfadaf中华人民共和国";

echo nformat($str);

翻转中文字符串<?php

header("content-type:text/html;charset=utf-8");

/**

此函数的作用是反转中文字符串

mb_strlen() 获取字符的长度

mb_substr() 获取字符的单个元素

krsort() 按照键值逆序排序数组

implode() 将数组拼接为字符串

explode() 使用字符串分隔字符串

*/

function str_rev_gb($str){

//判断输入的是不是utf8类型的字符,否则退出

if(!is_string($str)||!mb_check_encoding($str,"UTF-8")){

exit("输入类型不是UTF8类型的字符串");

}

$array=array();

//将字符串存入数组

$l=mb_strlen($str,"UTF-8");

for($i=0;$i

$array[]=mb_substr($str,$i,1,"UTF-8");

}

//反转字符串

$a=krsort($array);

//拼接字符串

$string=implode($array);

return $string;

}

$str1 = "Englist";

$str2 = "English中国";

$str3 = "Eng中lish国";

$str4 = "中华人民共和国";

echo $str1."->".str_rev_gb($str1)."
";

echo $str2."->".str_rev_gb($str2)."
";

echo $str3."->".str_rev_gb($str3)."
";

echo $str4."->".str_rev_gb($str4)."
";

14.用PHP写出显示客户端IP与服务器IP的代码。客户端IP:$_SERVER["REMOTE_ADDR"]

服务器端IP:$_SERVER["SERVER_ADDR"]

15.简述如何得到当前执行脚本路径,包括所得到参数。获取当前执行脚本路径使用$_SERVER["SCRIPT_FILENAME"]或__FILE__

获取参数,使用$_SERVER["QUERY_STRING"]

16.What is the difference between foo() & @foo()?foo()

会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。

@foo()

在执行这个函式时,会隐藏所有上述的错误讯息。

很多应用程序都使用@mysql_connect()和@mysql_query来隐藏mysql的错误信息,

这是不对的,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。

18.检测一个变量是否有设置的函数是否?是否为空的函数是?isset

检测一个变量是否设置

empty

检测是否为空

注意二者的区别,

如果变量是非空或非零的值,则empty()返回FALSE。

换句话说,

""、0、"0"、NULL、FALSE、array()以及没有任何属性的对象都将被认为是空的。

null $var未定义

对于isset为false

对于empty为true

19.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量______中;而链接到当前页面的的前一页面URL记录在预定义变量______中。当前脚本名称:$_SERVER["PHP_SELF"]或者$_SERVER["SCRIPT_NAME"];

链接到当前页面的前一页面的URL地址:$_SERVER["HTTP_REFERER"]。

20.sort()、asort()、和ksort()有什么分别?它们分别在什么情况下使用?1 sort($arr);       //由小到大,忽略键名

2 rsort($arr);      //由大到小,忽略键名

3 asort($arr);     //由小到大,保留键名

4 arsort($arr);    // 由大到小,保留键名

5 ksort($arr);     //按照键名正序排序

6 krsort($arr);   // 按照键名逆序排序

sort ― 对数组排序

根据数组中元素的值,以英文字母顺序排序,索引键会由0到n-1重新编号。

主要是当数组索引键的值无关紧要时用来把数组排序。

rsort ― 对数组逆向排序

rsort函数为 array 中的元素赋与新的键名。这将删除原有的键名,而不是仅仅将键名重新排序。

asort ― 对数组进行排序并保持索引关系

asort函数对数组进行排序,数组的索引保持和单元的关联。

arsort ― 对数组进行逆向排序并保持索引关系

arsort函数对数组进行排序,数组的索引保持和单元的关联。

ksort ― 对数组按照键名排序

对数组按照键名排序,保留键名到数据的关联

krsort ― 对数组按照键名逆向排序

对数组按照键名逆向排序,保留键名到数据的关联。

21.在PHP中error_reporting这个函数有什么作用?打开或者关闭错误报告,

如:

error_reporting(0);// 关闭所有PHP错误报告

error_reporting(E_ALL&~E_NOTICE);

error_reporting(E_ALL);

error_reporting(2047)什么作用?2047=1+2+4+8+16+32+64+128+256+512+1024

其中,

1对应E_ERROR,

2对应E_WARNING,

4对应E_PARSE,

8对应E_NOTICE,

16对应E_CORE_ERROR,

32对应E_CORE_WARNING,

64对应E_COMPILE_ERROR,

128对应E_COMPILE_WARNING,

256对应E_USER_ERROR,

512对应E_USER_WARNING,

1024对应E_USER_NOTICE。

error_reporting(2047)意味着上述错误都会显示出来。

23.常量如何定义?如何检测一个常量是否被定义?定义常量:define(), const

检测常量是否定义:defined(),

define("TEST","happynewyear!");

if(defined("TEST")){

echoTEST;

}

const YHY = "yangyihai";

24.执行程序段<?php echo 8%(-2) ?>将输出%为取模运算,输出0

$a%$b其结果的正负取决于$a的符号。

echo((-8)%3)."
";//输出-2

echo(8%(-3))."
";//输出2

25.数组函数arsort的作用是____;语句error_reporting(2047)的作用是____。arsort:对数组进行逆向排序并保持索引关系

error_reporting(2047)的作用reportAllerrorsandwarnings,见21题中相关题目。

26.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHPHP

P模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。LoadModule php5_module "c:/php/php5apache2.dll";

AddType application/x-httpd-php.php

27.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.allow_call_time_pass_reference:是否启用在函数调用时强制参数被按照引用传递,默认关闭

28.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____顶格写,并且不能包含任何其它字符除";"

如:

$str = <<

my name is Jiang Qihui!

SHOW;

heredoc

echo <<主页

EOT;

nowdoc

$str = <<

Example of string

spanning multiple lines

using nowdoc syntax.

EOD;

nowdoc结构,其用法和heredoc相同,

不同的是Nowdoc 结构是类似于单引号字符串的。

nowdoc 中不进行解析操作。

这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。

29.echo count("abc");输出什么?输出 1

count:计算数组中的单元数目或对象中的属性个数,通常是一个array,

任何其它类型都只有一个单元。

对于对象,如果安装了SPL,可以通过实现Countable接口来调用count()。

该接口只有一个方法count(),此方法返回count()函数的返回值。

如果var不是数组类型或者实现了Countable接口的对象,将返回1,

有一个例外,如果var是NULL则结果是0。

What will be the output of the following PHP code:<?php

echo count(strlen("

?>

answer:1

30.写个函数用来对二维数组排序<?php

header("content-type:text/html;charset=utf-8");

function array_sort($arr,$row,$type="asc"){

$arr_temp = array();

//将排序依据列作为数组的键名

foreach($arr as $value){

$arr_temp[$value[$row]] = $value;

}

//按照键名对数组排序,保持索引关系

if($type == "asc"){

ksort($arr_temp);

}elseif($type == "desc"){

krsort($arr_temp);

}

return $arr_temp;

}

$person = array(

array("id"=>2,"name"=>"yang","age"=>20),

array("id"=>43,"name"=>"wang","age"=>30),

array("id"=>22,"name"=>"lang","age"=>60)

);

$person = array_sort($person, "name");

var_dump($person);

输出结果array (size=3)

"lang" =>

array (size=3)

"id" => int 22

"name" => string "lang" (length=4)

"age" => int 60

"wang" =>

array (size=3)

"id" => int 43

"name" => string "wang" (length=4)

"age" => int 30

"yang" =>

array (size=3)

"id" => int 2

"name" => string "yang" (length=4)

"age" => int 20

31.写5个不同的自己的函数,来获取一个全路径的文件的扩展名,允许封装php库中已有的函数。<?php

header("content-type:text/html;charset=utf-8");

//echo __FILE__;

$path = str_replace("\\", "/", __FILE__);

function ext_one($path){

return substr(strrchr($path, "."),1);

}

echo ext_one($path);

function ext_two($path){

return substr($path,strrpos($path, ".")+1);

}

echo ext_two($path);

function ext_three($path){

$path_parts = pathinfo($path);

return  $path_parts["extension"];

}

echo ext_three($path);

function ext_four($path){

$arr = explode(".",$path);

return $arr[count($arr)-1];

}

echo ext_four($path);

function  ext_five($path){

$pattern = "/^[^\.]+\.([\w]+)$/";

return preg_replace($pattern, "${1}", basename($path));

}

echo ext_five($path);

32.PHP的意思,它能干些什么?PHP(HypertextPreprocessor,超文本预处理器的字母缩写)

是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到HTML中,尤其适合web开发。

PHP能做任何事。

PHP主要是用于服务端的脚本程序,

因此可以用PHP来完成任何其它的CGI程序能够完成的工作,

例如收集表单数据,生成动态网页,或者发送/接收Cookies。但PHP的功能远不局限于此。

PHP脚本主要用于以下三个领域:

1)服务端脚本。这是PHP最传统,也是最主要的目标领域。

2)命令行脚本。可以编写一段PHP脚本,并且不需要任何服务器或者浏览器来运行它。

通过这种方式,仅仅只需要PHP解析器来执行。

3)编写桌面应用程序。

Name a few ways to output (print) a block of HTML code in PHP?你可以使用PHP中任何一种输出语句,包括echo、print、printf,

大部分人都使用如下例的echo:

echo "My string $variable";你也可以使用这种方法:

echo <<

This text is written to the screen as output and this $variable is parsed too.

If you wanted you can have  HTML tags in here as well.The END;remarks must

be on a line of its own,and can"t contain any extra white space.

END;

35.$arr=array("james","tom","symfony");

请打印出第一个元素的值,并请将数组的值用","号分隔并合并成字串输出。<?php

header("content-type:text/html;charset=utf-8");

$arr=array("james","tom","symfony");

echo $arr[0];

$str = implode(",", $arr);

echo $str;

36.$a="abcdef";请取出$a的值并打印出第一个字母<?php

header("content-type:text/html;charset=utf-8");

$a="abcdef";

echo $a;

echo "
";

echo $a{0};

echo "
";

echo $a[0];

37.What does===do?What"s an example of something that will give true for "==",but not"==="?===表示全等,是指的两个变量的值和类型都相等。

如if(strpos("abc","a")==false)和if(strpos("abc","a")===false)<?php

header("content-type:text/html;charset=utf-8");

$text="Content-Type:text/xml";

print substr($text,strpos($text,":")+1);

print substr(strstr($text,":"),1);

print substr(strchr($text,":"),1);

46.将字符09转换成十进制数字。使用intval函数,echo intval("09"),

使用int强制类型转换。(float)"09"

47.请写一个函数,实现以下功能:字符串"open_door"转换成"OpenDoor"、"make_by_id"转换成"MakeById"。<?php

header("content-type:text/html;charset=utf-8");

function changeStr($str){

$str = explode("_",$str);

$str = array_map("ucfirst", $str);

return implode($str);

}

$str = "make_by_id";

echo changeStr($str);

48.要求写一段程序,实现以下数组$arr1转换成数组$arr2:

$arr1$arr1 = array(

"0" => array("fid" =>1, "tid" => 1, "name" => "Name1"),

"1" => array("fid" =>1, "tid" => 2, "name" => "Name2"),

"2" => array("fid" =>1, "tid" => 5, "name" => "Name3"),

"3" => array("fid" =>1, "tid" => 7, "name" => "Name4"),

"4" => array("fid" =>3, "tid" => 9, "name" => "Name5")

);

$arr2$arr2 = array(

"0" => array(

"0" => array("tid" =>1,"name"=>"Name1"),

"1" => array("tid" =>2,"name"=>"Name2"),

"2" => array("tid" =>5,"name"=>"Name3"),

"3" => array("tid" =>7,"name"=>"Name4"),

),

"1" => array(

"0" => array("tid" =>9,"name"=>"Name5"),

)

);

实现函数<?php

header("content-type:text/html;charset=utf-8");

$arr1 = array(

"0" => array("fid" =>1, "tid" => 1, "name" => "Name1"),

"1" => array("fid" =>1, "tid" => 2, "name" => "Name2"),

"2" => array("fid" =>1, "tid" => 5, "name" => "Name3"),

"3" => array("fid" =>1, "tid" => 7, "name" => "Name4"),

"4" => array("fid" =>3, "tid" => 9, "name" => "Name5")

);

function changStr($arr){

foreach($arr as $val){

$tmp = $val;

array_shift($val);

$result[$tmp["fid"]][]=$val;

}

return array_values($result);

}

$arr3 = changStr($arr1);

var_dump($arr3);

输出界面array (size=2)

0 =>

array (size=4)

0 =>

array (size=2)

"tid" => int 1

"name" => string "Name1" (length=5)

1 =>

array (size=2)

"tid" => int 2

"name" => string "Name2" (length=5)

2 =>

array (size=2)

"tid" => int 5

"name" => string "Name3" (length=5)

3 =>

array (size=2)

"tid" => int 7

"name" => string "Name4" (length=5)

1 =>

array (size=1)

0 =>

array (size=2)

"tid" => int 9

"name" => string "Name5" (length=5)

50.$val=max("string",array(2,5,7),42);$val值为array(2,5,7)<?php

echo max(1, 3, 5, 6, 7);  // 7

echo max(array(2, 4, 5)); // 5

// When "hello" is cast as integer it will be 0. Both the parameters are equally

// long, so the order they are given in determines the result

echo max(0, "hello");     // 0

echo max("hello", 0);     // hello

echo max("42", 3); // "42"

// Here 0 > -1, so "hello" is the return value.

echo max(-1, "hello");    // hello

// With multiple arrays of different lengths, max returns the longest

$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)

// 对多个数组,max 从左向右比较。

// 因此在本例中:2 == 2,但 4 

$val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)

// 如果同时给出数组和非数组作为参数,则总是将数组视为

// 最大值返回

$val = max("string", array(2, 5, 7), 42);   // array(2, 5, 7)

51.定义常量MYPI=3.14_________________________;define("MYPI",3.14);

52.简述单引号和双引号的用法双引号串中的内容可以被解释而且替换,

单引号串中的内容总被认为是普通字符。

53.Switch完整语法和注意事项使用Switch语句可以避免冗长的if..elseif..else代码块,

case只能处理整数,或者能像整数一样运算的类型,比如char,使用时case后用"",

注意break不能少,default是为了处理一些之前没有包含到的情况,这样更为安全。

54.用PHP编写代码在页面输出当前的北京时间,格式为“2007-01-18 09:22:03”date_default_timezone_set("PRC");

echo date("Y-m-d H:i:s",time());

55.简述GBK、GB2312、BIG5、GB18030GB2312

支持的汉字较少,

GBK

是相比GB2312汉字更为丰富,包括全部中日韩汉字,

GB18030

相比GBK增加了一些少数名族汉字汉字库更为多样,但是常人很难用到,

一般简体中文使用GBK而繁体中文使用BIG5。

56.计算某段字符串中某个字符出现的次数(例如:gdfgfdgd59gmkblg中g的次数)$text="gdfgfdgd59gmkblg";

echo substr_count($text,"g");

57.以下语句可能存在错误,如果存在错误请指出什么错误(每个语句单独考虑)print_r$val=333;//error,print_r是一个函数,需加上括号,如果是print则可以

print_r($val=333);//正确$a+=($b=4)+5;//notice,$a未定义,但可以正确运行

$foo[bar]="enemy";//notice,最好bar加上引号

functionx($a="1",$b){}//无,但给参数默认值应尽量从右向左

59.写出如下程序的输出结果<?php

header("content-type:text/html;charset=utf-8");

$a1 = null;

$a2 = false;

$a3 = 0;

$a4 = "";

$a5 = "0";

$a6 = "null";//false 这个变量不为空 是一个字符串null

$a7 = array();

$a8 = array(array());//false 数组不为空 二位数组

echo empty($a1) ? "true" : "false";

echo empty($a2) ? "true" : "false";

echo empty($a3) ? "true" : "false";

echo empty($a4) ? "true" : "false";

echo empty($a5) ? "true" : "false";

echo empty($a6) ? "true" : "false";

echo empty($a7) ? "true" : "false";

echo empty($a8) ? "true" : "false";

结果为true true true true true false true false

64.$arr=array("james","tom","symfony");

请将’jackjack’’添加到$arr数组的开头,并把jack打印出来。array_unshift($arr,’jack’);

echo $arr[0];

65.$arr=array("james","tom","symfony");请将$arr数组的值用’,’分割并合并成字符串输出?$arr = explode(",",$arr);

echo implode($arr);

67.$arr=array(3,7,2,1,"d","abc");

请将$arr按照从大到小的顺序排序,并保持其键值不变?<?php

header("content-type:text/html;charset=utf-8");

$arr=array(3,7,2,1,"d","abc");

arsort($arr);

var_dump($arr);

68.$mail=“gaofei@163.com";

请将此邮箱的域(163.com)取出来并打印,看最多能写出几种方法?echo strstr($mail,"163");

echo substr($mail,7);

echo substr($mail,strpos($mail,"@")+1);

$arr=explode("@",$mail);

echo $arr[1];

69.PHP中的注释的写法,要列出三种?//

注释内容C风格的单行注释

#

注释内容unix风格的单行注释

/*注释内容*/

C风格的多行注释

70.如何在一个php函数中使用具有全局属性的变量,说出两种方式?global $a

$GLOBALS["a"]

71.若$aa="aa";则print("aa is \"aa\""."
")会输出什么?aa is "aa"

72.如何把$a=‘123’转化成123,列出两种方式?$a = "123";

$a = (int)$a;

$a = intval($a);

settype($a,"int");

1)强制类型转换:(整型)字符串变量名;

2)intval(字符串变量);

3)直接转换:settype(字符串变量,整型);

73.说说break和continue可以用在哪些语句里,并且列出二者的区别?break和continue可以用在switch语句中,或是循环结构中

它们的区别主要是体现在循环语句中,

break表示跳出整个循环,不再执行,循环将终止,

continue则表示跳出本次循环,继续下一次的循环,不会终止循环。

74.函数中的默认参数位置如何放置?当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;

否则,函数将不会按照预期的情况工作。

75.如何往一个数组后面添加一个值?列出两种方式?$arr[]=$value;

array_push($arr,$value);

76.说出数组涉及到的常用函数。array--声明一个数组

count--计算数组中的单元数目或对象中的属性个数

foreach--遍历数组

list--遍历数组

explode--将字符串转成数组

implode--将数组转成一个新字符串

array_merge--合并一个或多个数组

is_array--检查是否是数组

print_r--输出数组

sort--数组排序

array_keys--返回数组中所有的键名

array_values--返回数组中所有的值

key--从关联数组中取得键名

77.字符串的常用函数?trim()--去除字符串首尾处的空白字符(或者其他字符)

strlen()--字符串长度

substr()--截取字符串

str_replace()--替换字符串函数

substr_replace()--对指定字符串中的部分字符串进行替换

strstr()--检索字符串函数

explode()--分割字符串函数

implode()--将数组合并成字符串

str_repeat()--重复一个字符串

addslashes();--转义字符串

htmlspecialchars()--THML实体转义

78$a = "01";

$result = 1;

if(in_array($a, array("1"))){

$result = 2;

}elseif($a == "1"){

$result = 3;

}elseif($a == "01"){

$result = 4;

}else{

$result = 5;

}

echo $result;

结果为2

80.php函数名是否区分大小写不区分

函数名是大小写无关的,不过在调用函数的时候,通常使用其在定义时相同的形式。

82.翻转字符串中的单词,字符串仅包含大小写字母和空格,单词间使用空格分隔。

如:输入"This is PHP",输出"PHP is This"(非必要请不要使用PHP自带函数)<?php

header("content-type:text/html;charset=utf-8");

function reverse($str){

$arr = explode(" ", $str);

$arr = array_reverse($arr);

return implode(" ", $arr);

}

$str = "This is PHP";

echo reverse($str);

83.请列举出你所知道的全局环境变量$_ENV;

$_SERVER;

$_REQUEST;

$_FILES;

$_SESSION;

$_COOKIE;

$_GET;

$_POST;

$GLOBALS;

84.设有这样一个数组

$a=array(

array(id=>0),

array(id=>1),

array(id=>2),

......)

id=>0-10000,请问你如何使用PHP判断id=>500是否在这个数组内?in_array()

85.<?php

header("content-type:text/html;charset=utf-8");

$a = $b =$c =0;

$a =$b &&$c;

var_dump($a);

var_dump($b);

var_dump($c);

结果boolean false

int 0

int 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值