2023年11月28日发(作者:)单阐述您最得意的开发之作(4分) 答:信息分类
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分) 答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,
程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
15、用PHP写出显示客户端IP与服务器IP的代码1分) 答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');
打印服务器IP:echo gethostbyname("")

x0c16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分) 答:require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执 行require
include->include有返回值,而require没有(可能因为如此require的速度比include快) 注意:包含文件不存在或者语法错误的时候require是致命的,include不是
17、如何修改SESSION的生存时间(1分). 答:方法1:将中的_maxlifetime设置为9999重启apache
方法2:$savePath = "./session_save_dir/"; $lifeTime = 小时 * 秒; session_save_path($savePath); session_set_cookie_params($lifeTime); session_start();
方法3:setcookie() and session_set_cookie_params($lifeTime);
18、有一个网页地址, 比如PHP开发资源网主页: /,如何得到它的 内容?($1分) 答:方法1(对于PHP5及更高版本):
$readcontents = fopen("/", "rb"); $contents = stream_get_contents($readcontents); fclose($readcontents); echo $contents; 方法2: echo file_get_contents("/");
19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函 数,其语句为(?);(2分) 答:状态401代表未被授权,header("Location:");
12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分) 答:heredoc的语法是用"<<<"加上自己定义成对的标签,在标签范围內的文字视为一个字符串
例子: $str = <<13、谈谈asp,php,jsp的优缺点(1分) 答:ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运 行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script )作为自己的开发语言。
PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法 , 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数 据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点( t)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。
JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前

ASP,PHP的一个通病-- 脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Jav a 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Js p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点

x0c程序。 三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。
但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的 第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式 ,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PH P、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web 服务器的技 术
,客户端浏览器不需要任何附加的软件支持。

14、谈谈对mvc的认识(1分) 答:由模型(model),视图(view),控制器(controller)完成的应用程序
由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;

15、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2 分) 答:SELECT * FROM `members` ORDER BY posts DESC limit 0,10;

16. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分) 答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一 个代价很大的操作。 按引用传递则不需要复制值,对于性能提高很有好处。

17. 在PHP中error_reporting这个函数有什么作用? (1分) 答:设置错误级别与错误信息回报

18. 请写一个函数验证电子邮件的格式是否正确 (2分)

答:function checkEmail($email)

{

$pregEmail

=

"/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";

return preg_match($pregEmail,$email);

}

19. 简述如何得到当前执行脚本路径,包括所得到参数。(2分) 答:$script_name = basename(__file__); print_r($script_name);

21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分) 答:弹出对话框: alert(),prompt(),confirm()
获得输入焦点 focus()

22、JS的转向函数是?怎么引入一个外部JS文件?(2分) 答:,

23、foo()和@foo()之间有什么区别?(1分) 答:@foo()控制错误输出

x0c24、如何声明一个名为”myclass”的没有方法和属性的类? (1分) 答:class myclass{ }
25、如何实例化一个名为

”myclass”的对象?(1分) 答:new myclass()
26、你如何访问和设置一个类的属性? (2分) 答:$object = new myclass();
$newstr = $object->test; $object->test = "info";
27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分) 答:mysql_fetch_row是从结果集取出1行数组,作为枚举
mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得
28、GD库是做什么用的? (1分) 答:gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。
在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
29、指出一些在PHP输入一段HTML代码的办法。(1分) 答:echo "aaa";
30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分) (a) fget() (b) file_open() (c) fopen() (d) open_file() [ c ]
31、下面哪个选项没有将 john 添加到users 数组中? (1分) (a) $users[] = ‘john’; (b) array_add($users,’john’); (c) array_push($users,‘john’); (d) $users ||= ‘john’; [ a , c ]
32、下面的程序会输入是否?(1分) $num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num; ?> 输出:10
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分) 表名User Name Tel Content Date 张三 133******** 大专毕业 2006-10-11 张三 136******** 本科毕业 2006-10-15 张四 021-******** 中专毕业 2006-10-15 请根据上面的题目完成代码: $mysql_db=mysql_connect("local","root","pass"); @mysql_select_db("DB",$mysql_db);

x0c$result = mysql_query("SELECT * FROM `user` WHERE name='张三'"); while($rs = mysql_fetch_array($result)){
echo $rs["tel"].$rs["content"].$rs["date"]; }
34、如何使用下面的类,并解释下面什么意思?(3) class test{ function Get_test($num){ $num=md5(md5($num)."En"); return $num; } }
答:$testnum = "123"; $object = new test(); $encrypt = $object->Get_test($testnum); echo $encrypt; 类test里面包含Get_test方法,实例化类调用方法多字符串加密
35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分) 表名User Name Tel Content Date 张三 133******** 大专毕业 2006-10-11 张三 136******** 本科毕业 2006-10-15 张四 021-******** 中专毕业 2006-10-15 (a) 有一新记录(小王 132******** 高中毕业 2007-05-06)请用SQL语句新增至表中 mysql_query("INSERT INTO `user` (name,tel,content,date) VALUES ('小王har实际长度字符串,datetime日期时间型,text文本字符 串
char的场地固定为创建表设置的长度,varchar为可变长度的字符
38、写出以下程序的输出结果 (1分) $b=201; $c=40; $a=$b>$c?4:5; echo $a; ?>
答:4
39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分) 答:isset($str),empty($str);

x0c40、取得查询结果集总数的函数是?(1分) 答:mysql_num_rows($result);
41、$arr = array('jamesme($arr['path']); $ext = explode(".",$file); return $ext[1]; } 答案2:
function getExt($url) { $url = basename($url); $pos1 = strpos($url,"."); $pos2 = strpos($url,"?"); if(strstr($url,"?")){
return substr($url,$pos1 + 1,$pos2 - $pos1 - 1); } else {
return substr($url,$pos1); } }
2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准 的 meta 语句
请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
请注意: 1. 需要处理完整的 html 页面,即不光此 meta 语句 2. 忽略大小写 3. ' 和 " 在此处是可以互换的

x0c4. 'Content-Type' 两侧的引号是可以忽略的,但 'text/html; charset=gbk' 两侧的不行 5. 注意处理多余空格
3. 写一个函数,算出两个文件的相对路径 如 $a = '/a/b/c/d/'; $b = '/a/b/12/34/'; 计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
答:function getRelativePath($a, $b) { $returnPath = array(dirname($b)); $arrA = explode('/数的参数不能是对变量的引用,除非在中把__allow_call_time_pass_reference boolean__设为on.
中LEFT JOIN的含义是__自然左外链接__。如果 tbl_user记录了学生的姓名(name)和学号 (ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)
和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则 可以用SQL语句____。
12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____。
编程题: 13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。 答: function my_scandir($dir) {
$files = array(); if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) { if ( $file != ".." && $file != "." ) { if ( is_dir($dir . "/" . $file) ) { $files[$file] = scandir($dir . "/" . $file); }else { $files[] = $file; } }
} closedir($handle); return $files; } }
14.简述论坛中无限分类的实现原理。 答: `categoryID` smallint(5) unsigned NOT NULL auto_increment, `categoryParentID` smallint(5) unsigned NOT NULL default '0qqqqd [level] => 2 [ParentID] => 3 ) [2] => Array ( [id] => 2 [name] => 二级类别 [level] => 1 [ParentID] => 1 ) [7] => Array ( [id] => 7 [name] => 234234 [level] => 2 [ParentID] => 2 ) [6] => Array ( [id] => 6 [name] => 333332 [level] => 2 [ParentID] => 2 ) [5] => Array ( [id] => 5 [name] => 三级类别 [level] => 2 [ParentID] => 2 ) [10] => Array ( [id] => 10 [name] => 66333666 [level] => 3 [ParentID] => 5 ) ) */ //指定分类id,然后返回数组 function Category_array($category_id = 0,$level=0) { global $DB; $sql = "SELECT * FROM category ORDER BY categoryID DESC"; $result = $DB->query($sql); while ($rows = $DB->fetch_array($result)) { $category_array[$rows['categoryParentID']][$rows['categoryID']] = $rows; }
foreach ($category_array AS $key=>$val) { if ($key == $category_id) { foreach ($val AS $k=> $v) { $options[$k] = array( 'id' => $v['categoryID'], 'name' => $v['categoryName'], 'level' => $level, 'ParentID'=>$v['categoryParentID'] );
$children = Category_array($k, $level+1);
if (count($children) > 0) { $options = $options + $children; } } } } unset($category_array[$category_id]); return $options; }

x0c?>


class cate {

function Get_Category($category_id = 0,$level = 0, $default_category = 0) {
echo $category_id; $arr = array( '0' => array(
'1' => array('id' => 1, 'parent' => 0, 'name' => '1111'), '2' => array('id' => 2, 'parent' => 0, 'name' => '2222'), '4' => array('id' => 4, 'parent' => 0, 'name' => '4444') ), '1' => array( '3' => array('id' => 3, 'parent' => 1, 'name' => '333333'), '5' => array('id' => 5, 'parent' => 1, 'name' => '555555') ),

'3' => array( '4' => array( );

'6' => array('id' => 6, 'parent' => 3, 'name' => '66666'), '7' => array('id' => 7, 'parent' => 3, 'name' => '77777') ),
'8' => array('id' => 8, 'parent' => 4, 'name' => '8888'), '9' => array('id' => 9, 'parent' => 4, 'name' => '9999') )

if (!isset($arr[$category_id])) {
return ""; }

foreach($arr[$category_id] AS $key => $cate) {
if ($cate['id'] == $default_category) {
$txt = "
"; }else{
$txt1 = ">" . $cate['name'] . "
"; }

x0c$val = $txt.$txt1; echo $val; self::Get_Category($key, $level + 1, $default_category); }
}
function getFlush($category_id = 0,$level = 0, $default_category = 0) {
ob_start();
self::Get_Category($category_id ,$level, $default_category);
$out = ob_get_contents();
ob_end_clean(); return $out; } } $id =$_GET['id']; echo ""; $c = new cate(); //$c->Get_Category(); $ttt= $c->getFlush($id,'0