‘壹’ php一道选择题
答案: C
解释:
在php语言里,对于数字式字符与数字如何参与运算,在具体情况下会视情来确定,请比较以下代码:
echo "3+4+5";结果:3+4+5
为什么会1+2+"3+4+5"结果会是6呢?
echo这个函数(或说是指令),其后跟的参数可以是字符串,也可以是需要运算的表达式,当出现:
echo "3+4+5";echo会认为这是个字符串
而echo 1+2+"3+4+5";echo会认为这是个表达式,所以会对这个表达式进行运算。
在这个运算过程中,1+2等于3,那么为什么"3+4+5"为什么会等于3呢?因为,在php中,对于运算式中,不同数据类型的数据在参与数据时,php会进行数据转换,以尽量确保使表达式成功运行,在"3+4+5"前面的运算符是 + ,那么,php会将"3+4+5"当作数值类型,此时会隐式地进行数据类型的转换,将这个字符串转换成数值,而"3+4+5"转换成数值的结果就是3,所以,整个表达式的结果是:1+2+3 = 6。
为更好的理解,作为对比,你可以参考以下代码:
echo 1+2 . "3+4+5";
结果:
33+4+5
‘贰’ (100分悬赏)几道PHP题,速度快,准确高的多加200分
填空选择题
1、在ASP页面中用以下语句声明<script language=VbScript _2___=server>脚本</script>,要求能在服务器端运行VbScript脚本
2、把数值型转换为字符串型的VbScript函数是_ CStr 3_;把字符串转换为整数 VbScript函数是¬¬¬5¬cint()
3、HTML标记,可单独使用或嵌入在各个ASP脚本单元中,以" __1____"为定界符; VBScript(或JScript)语句,可单独使用或嵌入在各个ASP脚本单元中,以___9______为定界符,通过对"__2______"属性的设置来决定是否在服务器端运行;
ASP脚本命令,可单独使用或包含在此和〈/html〉内,以"_____7____"为定界符
4、一段连接ACCESS数据库的代码
<% set conn=server.creatobject("adodb.connection")
Connstr= "DSN=____4___;UID=___6_____;PWD=;”
conn.open Connstr
%>
5、Session对象保存的用户信息是存储在___10_____;Cookie对象保存的用户信息是存储在____8_____
选项:
(1)< 和 〉 (2)runat (3)cstr (4)数据源的名称 (5)cint
(6)数据库的用户名 (7)<% 和 %> (8)客户端(9)<Script>和</Script> (10)服务器端
三、判断题
1、Vbscript只有一种数据类型,称为Variant ( 1 wrong)
2、数据库中的数据中最不可能为空值的是外键 ( 2 wrong)
3、Vbscript脚本语言不区分大小写,而JavaScript区分大小写 (right )
4、在特定的asp页面中指定主要的脚本语言,格式为<%@ language=Language of Script%>,这一行声明可以放在ASP页面的任何位置 ( wrong)
5、一个包含动态脚本的ASP页面直接双击,该页面的内容不能正常显示。( wrong)
6、删除student表中学号为‘200501012‘的学生信息的SQL语句为
delete * from student where StudentID=’ 200501012’ (right )
7、Vbscript声明变量的时候用var;JavaScript声明变量的时候用dim (wrong )
8、<%response.write Server.HTMLEncode(“<font color=’red’>颜色</font>”)%>将会以红色的字体显示“颜色”。( wrong)
9、ASP中request语句主要是用于用户接收服务器的数据 (wrong )
10、在用浏览器访问某个网站的页面时,可通过查看源文件的方式,修改网页的源代码( wrong)
四、问答题
1、ASP的工作原理 :用iis服务以网页的形式浏览asp文件,
2、<form name="form1" method="post" action="">
<form name="form1" method="get" action="">
简述Post和get方法的区别,并指出接收数据时用到的对象与方法
通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
1、 登陆页面可以被浏览器缓存;
2、 其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议 :在Form中,建议使用post方法。
post请求无长度限制(至少是理论上的)
表单提交中get和post方式的区别归纳如下几点:
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。
get有长度限制,最长不超过2048字节(1024个汉字)
‘叁’ 很基础的PHP程序员题目,要求具体步骤,一步一步的,不要解说,PHP我不会。拜托各位~题目如下。
$dsn = "mysql:dbname=shop;host=127.0.0.1";
$root = 'root'雀升唤;
$pwd = '';
$pdo = new pdo($dsn,$root,$pwd,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$sql = "select count(id) from shop";
$stmt = $pdo->query($sql);
$rowcount = $stmt->fetch(PDO::FETCH_ASSOC);
$rowpage = 5;
$pages = ceil($rowcount/$rowpage);
$nowpage = !empty($_GET['p']) ? intval($_GET['p']) : 1 ;
$prov = $nowpage - 1 < 1 ? 1 : $nowpage-1;
$next = $nowpage +1 >$pages ? $pages : $nowpage+1;
$start = ($nowpage-1)*$rowpage;
$sql1 = "select id, name, price, num from shop order by id limit $start,$rowpage";
$stmt1 = $pdo->query($sql1);
$info = $stmt1->fetchAll(PDO::FETCH_ASSOC);
$nowrows = $start+$rowpage;
print_r($info);
echo "总记录数:$rowcount总页数:$pages当前页数:$nowpage当前页的笑戚开始:$start结束记录数:$nowrows<a href='page.php?p=1'>首页</a><a href='page.php?p=$pages'>尾页</a><a href='page.php?p=$prov'>上一页</a><a href='page.php?p=$next'>顷凯下一页</a>"
‘肆’ PHP OOP 绫绘搷浣滈梾棰
杩欎釜灞炰簬OOP涓镄勨沧柟娉曚覆镵拟ethod chaining钬.
$list = $User->where('status=1')->order('create_time')->limit(10)->select();
鍒呜В寮锛屾寜绗﹀彿浼桦厛绾т粠宸﹀线鍙(浣犻偅鍏蜂綋镄𪞝PI缁呜妭涓嶈︼纴杩欓噷鍙鑳界粰鍑洪氢緥)
$o=$User->where('status=1')//鍏埚缑鍒癝QL镆ヨ㈠硅薄銆
$o=$o->order('create_time');
$o=$o->limit(10)
$list =$o->select();
绛変簬鎶娄互涓婂氩彞钖埚苟鎴愪竴鍙ワ纴鍦ㄧ被鏂规硶璁捐′笂姣忔¤佽繑锲炰竴涓钖岀被瀵硅薄return $o;
鍦≒HP锷ㄦ佺被鍨嬩笂闅剧湅娓咃纴浠Java涓轰緥杩欎簺鏂规硶镄勮繑锲炵被鍨嬩竴镙
public SomeClass where(String)
public SomeClass order(String)
public SomeClass limit(int n)
鏄涓绉嶆瘆杈冩湁鏁堢殑OOP璁捐℃妧宸с
缁椤嚭涓狿HP5镄勪緥瀛
‘伍’ 3道PHP选择题求答案,希望专业人士解答一下。
这位朋友,答案如下:
1、选择B D;
2、ACD;
3、A
希望能帮到你。(Mekbo【麦客博】/2013.7.21)
‘陆’ 经典PHP笔试题
经典PHP笔试题
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。下面是整理的关于经典PHP笔试题,欢迎阅读!
1.考虑如下脚本。标记处应该添加什么代码才能让脚本输出字符串php?
$alpha = 'abcdefghijklmnopqrstuvwxyz';
$letters = array(15, 7, 15);
foreach($letters as $val)
{/* 这里应该加入什么 */
}?>
A.echo chr($val);
B.echo asc($val);
C.echo substr($alpha, $val, 2);
D.echo $alpha{$val};
E.echo $alpha{$val+1}
答案解析:substr 函数能够胜任,但考虑到输出三个字母就需要三次调用该函数,所以排除此方法。那么$alpha{$val}和$alpha{$val+1}是仅有的两个可能输出题目要求的字符串的选项。因为 0 是数
组的第一个索引,所以答案是 D。
2. 以下哪一项不能把字符串$s1 和$s2 组成一个字符串?
A.$s1 + $s2
B.”{$s1}{$s2}”
C.$s1.$s2
D.implode(”, array($s1,$s2))
E.以上都可以
答案解析:除 A 以外的选项都能输出题目要求的字符串。PHP中,加号+不能把两个字符串合并成一个。
3. 变 量 $email 的 值 是 字 符 串 [email protected] , 以 下 哪 项 能 把 字 符 串 转 化 成example.com?
A.substr($email, strpos($email, “@”));
B.strstr($email, “@”);
C.strchr($email, “@”);
D.substr($email, strpos($email, “@”)+1);
E.strrpos($email, “@”);
答案解析:substr 函数返回字符串的一部分,而 strpos 函数擅长从一个字符串中找出某个指定的子串。同时使用这两个函数将满足题目要求。注意,前一个函数从 0 开始索引,而后者不是,因此需
要+1。答案是 D。
4. 给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每个独立的值放入一个新创建的数组?
A.strstr()
B.不可能只调用一次就完成
C.extract()
D.explode()
E.strtok()
答案解析:答案是 D。explode 函数使用一个字符串分隔另一个字符串,并把结果放入一个新建的数组。strtok 函数也可以做同样的事,但需要多次调用。
5. 要比较两个字符串,以下那种方法最万能?
A.用 strpos 函数
B.用==操作符
C.用 strcasecmp()
D.用 strcmp()
答案解析:答案是 D。strcmp()提供了安全的字符串比较机制。注意,选项 C 是错的,strcasecmp()不是一个“万能”函数,因为它不区分大小写。
6. 以下哪个 PCRE 正则表达式能匹配字符串 php|architect?
A..*
B.…|………
C.d{3}|d{8}
D.[az]{3}|[az]{9}
E.[a-z][a-z][a-z]|w{9}
答案解析:选项中没有一个正则表达式能真正代表题目所给字符串的匹配方式,但是选项 A 和 E仍然能勉强匹配。选项 A 太普通了,它能够匹配任何字符串,因此答案是 E。
7. 以下哪些函数能用来验证字符串的完整性?(三选)
A.md5()
B.sha1()
C.str_rot13()
D.crypt()
E.crc32()
答案解析:正确答案是 A,B 和 E。用 crypt()和 str_rot13()来验证一个字符串是否被改变,效率很低。crc32()比前面两个函数好些,如果能容忍一些小错误的话,它是个不错的选择。
8. 哪个 PHP 函数与以下脚本在 UNIX 系统下执行的效果近似?
function my_funct ($filename)
{
$f = file_get_contents ($filename);
return explode (" ", $f);
}
?>
A.fopen()
B.fread()
C.flock()
D.split_string()
E.file()
答案解析:正确答案是 A,B 和 E。用 crypt()和 str_rot13()来验证一个字符串是否被改变,效率很低。crc32()比前面两个函数好些,如果能容忍一些小错误的话,它是个不错的选择。
9. 基于指定的式样(pattern)把一个字符串分隔开并放入数组,以下哪些函数能做到?(双
选)
A.preg_split()
B.ereg()
C.str_split()
D.explode()
E.chop()
答案解析:尽管条件不同,但 preg_split 和 explode 函数都能满足题目要求。ereg()拿一个正则表达式匹配一个字符串;str_split()按固定长度分隔字符串;而 chop()则是 rtrim()别名,用来移除
字符串末尾处的空格。
10.以下脚本输出什么?
echo 'Testing ' . 1 + 2 . '45';
?>
A.Testing 1245
B.Testing 345
C.Testing 1+245
D.245
E.什么都没有
答案解析:本题考察你对字符串操作及操作符优先级的认识。连接运算符(.)的优先级比加号(+)高。因此 PHP 解释器实际执行的运算可以表示为(‘Testing’ . 1) + (2 . ‘45’)。由于字符串
test 1 不是数字,所以加号前面的运算等于 0。加号后面的运算等于 245,PHP 输出的'结果是 0+245,等于 245,所以答案是 D。
11.以下脚本输出什么?
$s = '12345';
$s[$s[1]] = '2';
echo $s;
?>
A.12345
B.12245
C.22345
D.11345
E.Array
答案解析:可以用访问数组元素的方式访问字符串中的字符,因此脚本只是把字符串中的第二个字符($s[1])替换成了字符 2,最终将输出 12245。答案是 B。
12.方框中的正则表达式能与以下哪些选项匹配?(双选)
/.**123d/
A.******123
B.*****_1234
C.******1234
D._*1234
E._*123
答案解析:本题的要点是理解这个正则表达式的含义——从左往右,首先是零个或多个任意字符(.*),跟着是一个星号(*),然后是 123,最后是一个数字。因此答案是 C 和 D。
13.以下哪个比较将返回 true?(双选)
A.‘1top’ == ‘1’
B.‘top’ == 0
C.‘top’ === 0
D.‘a’ == a
E.123 == ‘123’
答案解析:B 和 E 正确。选项 B 中,在比较时,字符串 top 等同于数字 0。==操作符不比对数据类型,所以将返回 true。答案 E 中,字符串 123 等同于数字 123,比较将返回 true。
14.如果用+操作符把一个字符串和一个整型数字相加,结果将怎样?
A.解释器输出一个类型错误
B.字符串将被转换成数字,再与整型数字相加
C.字符串将被丢弃,只保留整型数字
D.字符串和整型数字将连接成一个新字符串
E.整形数字将被丢弃,而保留字符串
答案解析:字符串将被转换成数字(如果无法发生转换就是 0),然后与整型数字相加。答案是 B。
15.考虑如下脚本。假设 http://www.php.net 能被访问,脚本将输出什么?
$s = file_get_contents ("http://www.php.net");
strip_tags ($s, array ('p'));
echo count ($s);
?>
A.www.php.net 的主页的字符数
B.剔除标签后的 www.php.net 主页的字符数
C.1
D.0
E.剔除以外的标签后的 www.php.net 主页的字符数
答案解析:代码的本意是剔除 www.php.net 主页上除了 p 以外的的所有 HTML 标签。可实际上,在代码的最后一行使用了 count 函数,它统计变量中的元素数量,而不是字符串中的字符数。由于字符
串是标量,对字符串使用 count 函数将永远返回 1。答案是 C。
16.哪个函数能不区分大小写得对两个字符串进行二进制比对?
A.strcmp()
B.stricmp()
C.strcasecmp()
D.stristr()
E.以上都不能
答案解析:题目其实就是在描述 strcasecmp 函数的作用,因此答案是 C。
17.以下哪些函数能把字符串里存储的二进制数据转化成十六进制?(双选)
A.encode_hex()
B.pack()
C.hex2bin()
D.bin2hex()
E.printf()
答案解析:正确答案是 B 和 D。pack 函数能对二进制数据进行复杂的格式化,包括将字符串中的字符转化成十六进制表示。bin2hex 函数也有同样的转化功能。注意,printf()能将整数转化成十六进
制数,但无法转化字符串。
18.哪个函数能用来确保一个字符串的字符数总是大于一个指定值?
答案解析:这是在说 str_pad 函数,它可以把字符串填充到指定长度。
19.以下脚本输出什么?
echo wordwrap ($a, 1, "c", false);
?>
答案解析:脚本将输出 ablecostscindy。wordwrap 函数通常用来把字符串切割成指定长度。然而在本题中,长度被设置为 1,因此函数将从空格处切割(第四个参数被设置为 false,因此函数不会从
单词的中间进行切割)。填充字符串是 c,等于把每个空格都换成了 c。
20.以下脚本输出什么?
echo substr_replace ($x, 'x', 1, 2);
?>
A.x
B.axle
C.axxle
D.applex
E.xapple
答案解析:脚本将输出 ablecostscindy。wordwrap 函数通常用来把字符串切割成指定长度。然而在本题中,长度被设置为 1,因此函数将从空格处切割(第四个参数被设置为 false,因此函数不会从
单词的中间进行切割)。填充字符串是 c,等于把每个空格都换成了 c。
;