1:print、print_r、echo到底有什么区别?
2:get和post的区别
echo和print都可以做输出,不同的是,echo不是函数,没有返回值,而print是一个函数有返回值,所以相对而言如果只是输出 echo 会更快,而print_r通常用于打印变量的相关信息,通常在调试中使用。
print 是打印字符串
print_r 则是打印复合类型 如数组 对象 1》 get请求时:
GET请求的数据会附在URL之后;空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
POST把提交的数据则放置在是HTTP包的包体中。
2》GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。
IE对URL长度的限制是2083字节(2K+35)。
对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
3》 POST的安全性要比GET的安全性高。
(1)登录页面有可能被浏览器缓存,
(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。 3:HTTP头书写
header(“HTTp/1.0 404 Not Found”);———找不到文件
header(“HTTp/1.1 403 Forbidden”);———不允许访问
4:$a6
=
'null'
;
$a8
=
array
(
array
());
echo
empty
(
$a
6
) ?
'true'
:
'false'
;
echo
empty
(
$a8
) ?
'true'
:
'false'
;
都返回false
5:写出如下程序的输出结果
<?php
$test
=
'aaaaaa'
;
$abc
= &
$test
;
unset(
$test
);
echo
$abc
;
?>
输出:aaaaaa
6:
$count = 5;
function get_count(){
static $count = 0; //未用global声明,故是内部变量
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
输出:
5
0
1
7:
$GLOBALS['var1'] = 5;
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++;
}
$res = get_value();
echo $res; //返回1
echo $var1; //返回5
echo $var2; //返回2 8:
function get_arr($arr){
unset($arr[0]);
}
$arr1 = array(1, 2);
$arr2 = array(1, 2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2); 9. 使用五种以上方式获取一个文件的扩展名
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
12、某内容管理系统:用户提交内容后,系统生成静态HTML页面;写出实现的基本思路,最好写出相关代码。
用户提交内容后,将内容加在最终页面模板上,然后另存为HTML页面(创建HTML页面,将内容和页面模板写入)。
代码:
$tpl->assign(‘vars’, $vars);
$static_html = = $tpl->fetch(‘tpl/index.html’); //Smarty的fetch方法
$fp = fopen(‘html/index.html’, ‘w’);
fwrite($fp, $static_html);
另一种 ob_start
createHtml.php