disabled什么意思中文翻译,js中disabled是什么意思

时间:2025-03-06 07:02:56
、、、 #157、下列不属于Java语法关键/保留字的是 ? B var $ function while #158、下列不属于Javascrip DOM操作事件的是?C A. onclick B. onkeydown C. onbodyload D. onmouseover #159、请写出5个常用的unix操作命令。 Ls find Tar –zxvf Touch Cat Mkdir rm #160、 请写出以下5个UNIX系统配置文件/服务的作用 /etc/passwd 用户信息文件 /etc/hosts 主机名设置文件 /etc/fstab 保存系统所有分区信息 Crontab 计划任务服务 sshd 远程连接服务 #161、请写出5个常用的SQL操作关键字。 SELECT INSERT DELETE UPDATE WHERE #162、请列出5个常用的PHP操作MySQL的函数 。 Mysql_connect、mysql_fetch_row、mysql_affected_rows、mysql_fetch_assoc、mysql_query #163、有两张数据表,表user(id, name)记录了用户的ID和昵称,表article(id, title, content, time)记录了用户发表的文章标题、内容和时间,写一个SQL语句打印出每个用户的昵称及其发表的文章总数。 SELECT ,, FROM user,(SELECT id,count(*) as ‘num’ FROM article) as a WHERE =; #164、下列PHP函数中不能直接在页面输出字符串的函数是 ?B A. echo B. sprintf C. printf #165、在PHP中,'+'操作符的功能不包括?A undone A. 字符串连接 B. 数组数据合并 C. 变量数据相加 #166、下面哪个选项没有将john添加到users数组中? C (A) $users[] = 'john'; (B) array_push($users, 'john'); (C) $users ||= 'john'; (D) array_unshift($users, 'john'); #167、请列出3种PHP数组循环操作的语法,并注明每种循环的优缺点?undone For、while、foreach For循环适合遍历定长数组 While循环适合遍历不定长数组 Foreach适合遍历关联数组和索引数组 #168、请列出3个PHP中的预定义全局变量? $_SERVER $_FILE $_SESSION #169、从PHP4.2.0开始 PHP默认配置将register_globals配置设定为off,请指出这个设定的作用和对PHP相关程序的影响? Register_globals=off;的时候,关闭了全局变量注册,访问POST、GET、COOKIE、SESSION、ENV全局变量时不能使用简易方式,只能用$_全局变量名方式访问,加强了安全性。 #170、写一个函数实现字符串翻转 ? Function strTurn($str){ $m=strlen($str); For($i=m; $i>=0;$i--){ $string.=$str[$i]; } Return $string; } #171、请写出下列PHP代码的执行结果 。 $var1 = 5; $var2 = 10; function foo(&$my_var) { global $var1; $var1 += 2; $var2 = 4; $my_var += 3; return $var2; } $my_var = 5; echo foo($my_var) . "\n"; 4 echo $my_var . "\n"; 8 echo $var1 . "\n"; 7 echo $var2 . "\n"; 10 $bar = 'foo'; $my_var = 10; echo $bar($my_var) . "\n"; 4 #172、不断在文件头部写入一行“Hello World”字符串,要求代码完整。Undone $file=’’; $con=file_get_cotents($file); While(1){ File_put_contents($file,’Hello World\n’.$con) } #173、 输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 --- 192.168.1.150之间。 $ip=$_SERVER[“REMOTE_ADDR”]; Echo $ip; $pos=strrpos($ip,’.’)+1; $head=substr($ip,0,$pos); $my=substr($ip,$pos); If($head=='192.168.1.' && $my>100 && $m<150){ Echo ‘IP在指定区间内’; }else{ Echo ‘IP不在指定区间内’; } #174、 请将2维数组按照name的长度进行重新排序,按照顺序将id赋值(从1开始)。 0, ‘name’ => ‘123’), array(‘id’ => 0, ‘name’ => ‘1234’), array(‘id’ => 0, ‘name’ => ‘1235’), array(‘id’ => 0, ‘name’ => ‘12356’), array(‘id’ => 0, ‘name’ => ‘123abc’) ) foreach($Tarray as $k=>$v){ $name[]=$v["name"]; } array_multisort($name,SORT_DESC,$Tarray); $m=count($Tarray); for($i=0;$i<$m;$i++){ $Tarray [$i]["id"]=$i+1; } echo '
';
print_r($Tarray);
echo '
'; #175、表单数据提交方式POST和GET的区别,URL地址传递的数据最大长度是多少? POST方式提交没有长度限制且URL地址中不可见,GET提交数据有最大长度限制并在URL中可见。 URL地址传递数据最大长度为,IE浏览器2083(2k+53)。 #176、SESSION和COOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历? 两者都能够存储数据在一个站点多个页面间传递。 SESSION:存储在服务器端 COOKIE:存储在客户端 SESSION信息的存储方式有文件、内存和用户自定义几种方式。 通过全局数组$_SESSION可以取到SESSION信息并遍历。 #177、通过PHP函数的方式对目录进行遍历,写出程序 function listDir($dir){ if(is_dir($dir)){ if ($dh = opendir($dir)){ while(($file= readdir($dh)) !== false){ if((is_dir($dir."/".$file)) && $file!="." && $file!=".."){ echo " 文件夹:",$file,"
"; listDir($dir."/".$file."/"); echo '
'; }else{ if($file!="." && $file!=".."){ echo $file."
"; } } } closedir($dh); } } } #178、Linux的目录进行遍历,编写shell脚本?undone #!/bin/sh 使用bash做为默认shell list_alldir(){ for file in $1/* do if [ -d $file ]; then echo $file list_alldir $file #在这里递归调用 fi done } #下面是定义初始化路径 if [ $# -gt 0 ] then list_alldir "$1" else list_alldir "." fi #179、什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么? 数据库索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。 主键和唯一的区别,每个表只能有一个主键索引,但可以有多个唯一索引。 索引的缺点: 1)创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2)索引需要占物理空间,除了数据表占空间之外,每一个索引还要占一定的物理空间。 3)当对表的数据进行增加、删除和修改时,索引也要动态维护,这样就降低了数据库的维护速度。 #180、数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案? 通常造成数据库瓶颈的原因是: 1)数据库系统本身性能不佳,例如你用桌面数据库Access 来做web应用的后台数据库 显然是不行的; 2)数据库结构设计不合理,导致不必要的、过多的数据库访问,这需要优化数据表结构设计,必要时引入Cache系统; 3)数据库连接池设置不当,为了提供数据库的服务能力,在有潜在并发访问数据库的情况下,我们会使用连接池技术,如果池的大小与实际需求不符,则会带来访问数据库时的排队等候。 4)程序实现适当,例如对 数据库连接长期占有,导致其它访问必须进行排队 当然,即时没有以上的错误做法,当一个系统规模不断变大时,数据库系统也会成为瓶颈所在,但针对此业界有一些解决方法的,例如进行数据库水平/垂直分割、集群、缓存等等。 #181、编写一个在线留言本,实现用户的在线留言功能,留言信息存储到数据库?undone 数据表字段:aid、author、title、content、posttime、edittime、ip 脚本: 留言列表、回复留言按钮、提交留言表单 (业务处理脚本) 处理表单提交、增改留言数据表 #182、通过JS创建一个当前窗口的子窗口,通过程序实现子窗口对父窗口的操作实例? 1)IE中使用方法: 父窗口调用子窗口:iframe_ID.iframe_document_object.object_attribute = attribute_value 例子:onClick="iframe_text.=' ';" 子窗口调用父窗口:parent.parent_document_object.object_attribute = attribute_value 例子:οnclick="parent.=' ';" 2)Firefox中使用方法: 上面在IE下没有问题,但在firefox下不正常。在firefox下,应该是如下调用方法: 父窗口调用子窗口:["iframe_ID"].("iframe_document_object"-).object_attribute = attribute_value 例: ["iframe_text"].("myH1").innerHTML= " "; 子窗口调用父窗口:("parent_document_object").object_attribute = attribute_value 例: ("myH1").innerHTML = " "; #183、通过JS实现页面的前进和后退操作?  后退 前进 #184、浏览器IE和非IE浏览器的划分,区别是什么? IE浏览器指的是使用IE内核的浏览器,对一些W3C标准的网页代码的支持不是很好。 非IE浏览器指的是没有使用IE内核的浏览器,对W3C标准的网页代码有很好的支持。 #185、设定网站的用户数量在千万级,但是活跃用户的数量只有1%,如何通过优化数据库提高活跃用户的访问速度? 可以使用分表技术,将高活跃用户单独存到一个有同样字段但表名不同的表里,当用户登陆时首先查询这个表,如果不是高活跃用户再查询大表。 #186、服务器在运行的过程中,随着用户访问数量的增长,如何通过优化,保证性能?如果数据库已经达到最优化,请设计出继续升级的解决方案? 1)确定当前的服务器的硬件设备能不能满足流量需求,如果满足不了就添加新的设备。 2)使用memcache缓存技术,将动态数据缓存到文件中,动态网页直接调用这些文件,而不必再访问数据库。 3)禁止外部盗链,图片、或文件盗链会给服务器带来大量的负载压力,因此可以通过refer来控制盗链,或者用apache来配置禁止盗链。 4)控制大文件的下载,大文件的下载对于非SCSI硬盘来说会占用大量资源,使得网站响应能力下降。 5)使用不同的主机分流主要流量,使得服务器均衡负载。 6)使用流量统计软件进行流量统计和分析,可以即时了解哪些地方耗费了大量的流量,哪些页面需要再进行优化。 #187、写出程序运行的结果 结果:4,4 #188、数据库中的事务是什么? 数据库事务,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新数据库。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。 #189、实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。 $a='aa'; $b='bb'; $b.=$a; $a=substr($b,strpos($b,'a')); $b=substr($b,0,strpos($b,'a')); #190、用php打印出前一天的时间格式是2006-5-10 22:21:21 date_default_timezone_set('PRC'); echo Date('Y-m-d H:i:s',time()-60*60*24); #191、如何实现字符串翻转? strrev函数 #192、PHP的意思,它能干些什么? PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。 #193、GD库是做什么用的? gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。 #194、echo(),print(),print_r()的区别? echo 是语法结构,也就是关键字,不是函数。使用的时候不用加括号,加上也可以。显示多个值的时候可以用逗号隔开。只支持基本类型,布尔型除外,echo true的时候显示1,echo false的时候啥都没有。 print 和 echo 基本一致。但是print 不支持逗号分隔多个显示变量的语法。 print_r 是函数,不仅可以打印变量的的值,还能显示变量类型,而且也可以显示数组和对象这样复杂的变量类型。print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。 #195、对于大流量的网站,您采用什么样的方法来解决访问量问题? 确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表, 程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量 #196、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? 前者返回的结果集是一个索引数组,后者返回的结果集既包含索引数组又包含关联数组。 #197、优化MYSQL数据库的方法? 1)数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率 。 2)系统架构设计方面,表散列,把海量数据散列到几个不同的表里面。快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master 。 3)(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引 4)写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面,缓存查询结果,explain每一个sql语句 5)所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) ... where article_id = ? 就可以了,不要先select * ... where article_id = ?然后msql_num_rows. 只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update ... set title = ? where article_id = ?不要set content = ?(大文本) 6)必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度。 #198、实现中文字串截取无乱码的方法?undone function substr_for_utf8($sourcestr,$cutlength){ $returnstr=”; $i=0; $n=0; $str_length=strlen($sourcestr); //字符串的字节数 while (($n<$cutlength) and ($i<=$str_length)){ $temp_str=substr($sourcestr,$i,1); $ascnum=Ord($temp_str); //得到字符串中第$i位字符的ascii码 if ($ascnum>=224) //如果ASCII位高与224, { $returnstr=$($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符 $i=$i+3; //实际Byte计为3 $n++; //字串长度计1 } elseif ($ascnum>=192)//如果ASCII位高与192, { $returnstr=$($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符 $i=$i+2; //实际Byte计为2 $n++; //字串长度计1 } elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母, { $returnstr=$($sourcestr,$i,1); $i=$i+1; //实际的Byte数仍计1个 $n++; //但考虑整体美观,大写字母计成一个高位字符 } else //其他情况下,包括小写字母和半角标点符号, { $returnstr=$($sourcestr,$i,1); $i=$i+1; //实际的Byte数计1个 $n=$n+0.5; //小写字母和半角标点等与半个高位字符宽… } } if ($str_length>$cutlength){ $returnstr = $returnstr . “…”; //超过长度时在尾处加上省略号 } return $returnstr; } #199、用PHP写出显示客户端IP与服务器IP的代码。 客户端IP:$_SERVER[“REMOTE_ADDR”]; 服务器端IP:$_SERVER[SERVER_ADDR]; #200、有一个网页地址, 比如PHP开发资源网主页:  /,如何得到它的内容? $file=file_get_contents('  / '); file_put_contents('',$file); #201、请写一个函数验证电子邮件的格式是否正确。 $reg=’/\w+@(\w+\.)+\w{2,}$/’; $mail=’aaa@’; If(preg_match($reg,$mail)){ Echo ‘正确’; }else{ Echo ‘错误’; } #202、简述如何得到当前执行脚本路径,包括所得到参数。 $_SERVER[“SCRIPT_NAME”] __DIR__ basename(__file__); #203、JS表单弹出对话框函数是?获得输入焦点函数是? 弹框函数alert()、prompt()、confirm()获取焦点函数focus()。 #204、写一个函数,算出两个文件的相对路径 如 $a = '/a/b/c/d/'; $b = '/a/b/12/34/'; 计算出 $b 相对于 $a 的相对路径应该是  /c/d将()添上 function getPath($a,$b){ $m=strlen($a); for($i=1;$i<$m;$i++){ $str=substr($a,0,-$i); $reg='/'.str_replace('/','\/',$str).'/'; if(preg_match($reg,$b)){ $not=str_replace($str,'',$a); $count=substr_count($not,'/'); for($j=0;$j<$count;$j++){ $path.='../'; } $path.=str_replace($str,'',$b); return $path; } } } echo getPath($a,$b); #205、有一个备份程序mybackup,需要在周一至周五下午一点和晚上八点各运行次,下面哪一条crontab的项可以完成这项工作?B A.0 13,20 * * 1,5 mybackup B.0 13,20 * * 1,2,3,4,5, mybackup C.*13,20 * *1,2,3,4,5, mybackup D.0 13,20 1,5 * *mybackup #206、中文占用unicode码范围? 0080-07FF #207、$_REQUEST、$_POST、$_GET、$_COOKIE、$_SESSION、$_FILE的意思是什么? 都是超全局数组。 $_REQUEST可以获取POST和GET传值 $_POST可以获取POST传值 $_GET可以获取GET传值 $_COOKIE服务器端可以使用setCookie()函数设置信息到客户端浏览器中,通过 $_COOKIE数组可以获取设置的值。 $_SESSION当服务器页面中使用session_start()函数开启session后。就可以使用这个全局变量,用户就可以在整个网站中访问这些会话信息。 $_FILE可以获取表单上传文件信息。 #208、数组中下标最好是什么类型的,为什么? 字符串类型,因为处理方便。 #209、++i和i++哪一个效率高,为什么? ++i效率高,因为i++在运算结束后还会自加一次。 #210、magic_quotes_gpc()、magic_quotes_runtime()的意思是什么? magic_quotes_gpc()是否对输入的GET/POST/COOKIE数据使用自动字符串转义。 Magic_quotes_runtime()是否对进行时从外部资源产生的数据使用自动字符转义,如SQL语句。 #211、框架中什么是单一入口和多入口,单一入口的优缺点? 单一入口是指一个项目或一个应用具有统一的入口文件,项目的所有功能操作都是通过这个入口文件进行的,并且往往入口文件是第一步被执行的。 单一入口的优点: 加载文件方便、权限验证容易、URL重写简单。 单一入口的缺点:URL地址不利于搜索引擎,但是可以通过URL重写解决 #212、打印一个用‘.’链接的字符串时候,还可以用什么代替‘.’链接效率更高些? 可以用’,’替换 #213、提示类型200、404、502是什么意思。 200请求成功 404请求失败,找不到页面 502作为网管或代理的服务器常识执行请求时,从上游服务器接收到无效的响应。 #214、你对Memcache的理解,优点有哪些? Memcache是一个高性能的分布式内存对象缓存系统,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索结果等。 优点:解决了共享内存只能是单机的弊端、降低了数据库检索压力、提高了访问获取数据的速度。 #215、MySQL字段类型有很多种,如int ,bigint , char, varchar, text等等, 请描述每种字段占用的字节数和最大范围。 注意:平台环境为32位字长计算机,Mysql 5.0+, 数字型字段使用unsigned属性 Int 4字节,带符号值:-2147483648~2147483647,无符号值:0~4294967295 Bigint 8字节 Char M字节 固定长度,M取值0-255 Varchar L+1字节,可变长度,根据存放值长度而定,取值范围0-255 Text 255字节 #216、对关系型数 据库而言,索引是相当重要的概念,请回答有关索引几个问题: 1)索引的目的是什么? 建立索引的目的是加快对表中记录的查找或排序 2)索引对数据库系统的负面影响是什么? 一是增加了数据库的存储空间,二是在插入和修改时要花费较多的时间。 3)为数据表建立索引的原则有哪些? 表的主键、外键必须有索引; 数据量超过300 的表应该有索引; 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在where字句中的字段,特别是大表的字段,应该建立索引; 索引应该建立在选择性高的字段上; 频繁进行数据操作的表,不要建立太多索引; 删除无用的索引,避免对执行计划造成负面影响。 4)什么情况下不宜建立索引? 数据表数据少和字段值重复太多,不适宜建立索引,不起到提速,反而会消耗大量内存。 #217、web应用中,数据库的读取频率远高于写入频率, 如何优化MySQL而应对此种情景 ? 使用memcache缓存技术,将动态数据缓存到文件,访问动态页面时直接调用缓存文件,而不必重新访问数据库,这样就减少了查询数据库的次数。 如果网站的访问量很大,可以把数据库读写服务器分开,使用多态服务器去处理数据库查询,使用较少的服务器去处理数据库的写入和修改。 #218、PHP字符串中单引号与双引号的区别? 双引号能解析变量和转义字符,而单引号不能。 #219、指出以下代码片段中的SQL注入漏洞以及解决方法(magic_quotes_gpc = off) mysql_query("select id,title from content where catid='{$_GET[catid]}' and title like '%$_GET[keywords]%'", $link); 可以在$_GET[catid]和$_GET[keywords]变量上做文章,如传catid= 10’;select * from content— #220、分别指出中 magic_quotes_gpc, magic_quotes_runtime两项参数的作用。 magic_quotes_gpc开启可以对输入GET/POST/cookie数据使用自动字符串转义,可以有效防止sql注入。 magic_quotes_runtime开启可以对运行时从外部资源产生的数据使用自动字符串转义。php5.4已移除。 #221、什么是时间戳? 如何取得当前时间戳? UNIX时间戳是从1970年1月1日零点开始起到当前时间经过的秒数。 使用time()和microtime()函数可以获取当前时间戳。 #222、session与cookie的区别与关系, 禁用cookie后, session能否正常使用? 前者是在服务器端存储,后者在服务器端存储, Session有两种方式传递,一种是将sessionid存储到cookie中,另一种是通过url传递 禁用cookie后仍可以使用session,使用url传递 #223、了解XSS攻击吗? 如何防止 ? XSS攻击:跨站脚本攻击,是一种经常出现在web应用的计算机安全漏洞,它允许web用户将代码植入到提供给其他用户使用的页面中。 XSS攻击的危害包括:盗取各类用户帐号,控制企业数据,盗窃企业重要资料,非法转账,强制发送电子邮件,网站挂马,控制受害者及其攻击其他网站。 #224、写出192.168.0.1 ip地址的二进制和10进制表示形式。 128 10000000 64 1000000 32 100000 16 10000 8 1000 4 100 2 10 1 1 11000000 10000100 0 1 #225、一个字节占多少bit ? 一个IPv4地址占几个字节? 一个IPv6地址呢?undone 一个字节占8bit,一个IPV4占用30字节,一个IPV6占用46字节 #226、2M ADSL宽带连接, 理想情况下, 最大下载速度是多少KB/s ? 下载速度一般是用kB/s表示,而不是kb/s。网络的带宽一般是按bit(比特)作为单位,也就是位。2M的带宽就是网速可以达到2Mbps。软件上表示的下载/上传速度的单位一般是Byte(字节),因为1Byte=8bit,所以2M带宽,最大的下载速度可以是2M/8=256k 字节/秒,也就是256kB/s。 #227、 Fatal error: Call to undefined method ge_user() in /website/ on line 39 没有ge_user()方法,可能是方法名写错了,检查方法名。 #228、Fatal error: Class 'client' not found in /website/ on line 173 没有找到client这个类,类名写错了,检查类名,如果是加载进来的类文件,检查下文件是否加载。 #229、 Warning: Missing argument 1 for member::register(), called in /website/ on line 43 and defined in /usr/website/ on line 96 缺少一个参数,检查register()函数需要参数类型,并正确传参。 #230、 Warning: file_put_contents(): Permission denied in /website/ on line 4 对文件没有写权限,更改文件权限为777。 #231、Warning: Cannot modify header information - headers already sent by (output started at /website/:1) in /website/ on line 3 setcookie、header、session函数前不能有输出。 #232、 Warning:session_start(): open(/website/tmp/sess_47e067121facf033785f9a1cb16d243b, O_RDWR) failed: No such file or directory (2) in /website/ on line 10 没有找到文件或目录,检查文件是否存在 #233、Parse error: syntax error, unexpected T_STRING in /website/ on line 18 18行语法错误,检查语法 #234、Warning: fopen() []: failed to open stream: No such file or directory in /website/ on line 2 打开文件失败,没有这个文件,检查文件名书写是否正确。 #235、 windows平台, Apache Http Server启动失败, 排错思路是什么? 可能情况一:安装apache2的路径中不能含有中文,将中文都改成英文。 可能情况二:有其他服务占用80端口,修改端口。 可能情况三:配置文件修改错误,还原配置文件。 #236、 你所知道的php数组相关的函数? Array_rand、in_array、array_flip、array_values 、array_keys、sort、rsort、shuffle Array_push、array_pop、array_shift、array_unshift、array_merge、range、array_pad #237、php读取文件内容的几种方法和函数? Fread、file_get_contents、fgets、fgetc、file #238、以下程序,变量str什么值的情况下输入111? if( ! $str ) { echo 111; } 当$str为整数0、浮点型0.0、空字符串和字符串”0”、布尔值false、空数组、特殊类型NULL时 #239、说说你对缓存技术的了解? 缓存技术是将动态内容缓存到文件或内存中,在一定时间内访问动态页面直接调用缓存,而不必重新访问数据库。 Memcached,redis #240、你所知道的设计模式有哪些? 单例、工厂、MVC、适配器、组合、观察者、命令、迭代器、代理、策略 #241、说说你对SVN的了解?优缺点? 程序员开发的代码递交到版本服务器进行集中管理。 优点:代码进行集中管理,版本控制容易,操作比较简单,权限控制方便。 缺点:每个文件夹都带一个.svn的文件夹,不能随意修改服务器项目文件夹 #242、怎么找到的路径? Echo phpinfo(); #243、PHP加速模式/扩展? PHP调试模式/工具? Zend Optimizer加速扩展 调试工具:xdebug #244、你常用到的mysql命令? SELECT INSERT DELETE UPDATE #245、进入mysql管理命令行的命令? Mysql –u root –ppass Mysql –h localhost –u root –p123456 #246、show databases; 这个命令的作用? 查看数据库列表 #247、show create database mysql; 这个命令的作用? 查看mysql库建库语句 #248、show create table user; 这个命令的作用? 查看user表的建表语句 #249、 desc user; 这个命令的作用? 查看user表的表结构 #250、explain select * from user; 这个命令的作用? 查看查询语句信息 #251、show processlist; 这个命令的作用? 查看进程信息 #252、 SHOW VARIABLES; 这个命令的作用? 查看系统变量 #253、SHOW VARIABLES like '%conn%'; 这个命令的作用? 查看字段名含有conn的系统变量。 #254、LEFT JOIN 写一个SQL语句? SELECT , FROM user as a LEFT JOIN post as p ON = WHERE =3; #255、in, not ni, exist, not exist的作用和区别? In在此范围内 Not in 不在此范围内 Exist 存在 Not exist不存在 #256、怎么找到数据库的配置文件路径? / #257、简述Linux下安装PHP的过程? 安装软件之前先安装编译工具gcc、gcc-c++ 拷贝源码包,解包解压缩 Cd /lamp/php进入php目录 ./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc指定安装目录和配置文件目录 Make 编译 Make install安装 #258、简述Linux下安装Mysql的过程? Groupadd mysql 添加一个用户组mysql Useradd -g mysql mysql 添加一个mysql用户指定分组为mysql Cd /lamp/mysql 进入mysql目录 ./configure –prefix=/usr/local/mysql/ –with-extra-charsets=all Make Make all #259、简述Linux下安装apache的过程? Cd /lamp/httpd 进去apache软件目录 ./configure –prefix=/usr/local/apache2/ –sysconfdir=/etc/httpd/ –with-included-apr Make Make all #260、用java取得一个input的值?取得一个input的属性? (‘input’)[0]; (‘input’)[0].type #261、用Jquery取得一个input的值?取得一个input的属性? $(function(){ $(‘input’).val(); $(‘input’).attr(‘type’); }) #262、 请您写一段ajax提交的js代码,或者写出ajax提交的过程逻辑。Undone 过程逻辑; 1)创建ajax对象 2)打开服务器连接 3)判断请求状态 4)如果是post发送,需要设置请求头部信息 5)发送请求 6)处理响应 #263、写出你认为语言中的高级函数 Imagecreate Imagecolorallocate Imagesetpixel Imagettftext Iconv Mb_substr Mysql_connect() Mysql_select_db Mysql_query mysql_fetch_row Mysql_close #264、简述Cookie的设置及获取过程。 只要用户的浏览器支持cookie功能,就可以使用php的setcookie函数来建立一个cookie。 Setcookie函数需要传三个必要参数,cookie识别名称、cookie值和cookie生存时间。还可以设置其他三个可选参数,分别是服务器端指定路径、所属服务器网址和是否通过 https连接。 使用$_COOKIE全局数组可以获取cookie信息。 #265、写出Smarty模板引擎中你最常用的关键词 Assign Display Foreach Section Loop Item $smarty Now Const get #266、如下user表结构 名称 类型 说明 备注 Uid Int unsigned 主键 Name Varchar(20) Age Tinyint unsigned 需求: 1)增加一个字段性别sex,写出修改语句 Alter user ADD sex ENUM(‘1’,‘0’) NOT NULL DEFAULT ‘1’ AFTER Age; 2)查询出年龄介于20岁到30岁之间的用户 SELECT * FROM user WHERE age BETWEEN 20 AND 30; 3)如果是一个Web频繁访问的查询,上题的查询如何优化? 可以使用预处理,也可以将查询结果集缓存到memcache服务器。 #267、$str[1]=’123456’; $str[2]=’asassasasas’; $str[1][2]=’abcdefgh’; var_dump($str); 写出此程序运行结果 array(2) { [1]=> string(6) "12a456" [2]=> string(6) " asassasasas " } #268、memcache 是什么?使用过吗?, 有什么用? 请详细描述其操作过程。 memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,用来存储数据。 作用:它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。 操作过程: –d install –d start telnet localhost(IP地址) 11211(端口号) add one(名称) 1(标记) 300(有效时间) 10(字符串长度) #269、请写一个函数将1234567890转换成1,234,567,890 每3位用逗号隔开的形式。Undone #270、用JS实现以下功能 1)得到当前的年份 Var d=new Date(); (()); 2)div的id为hot_nav的高、 #271、写出string的方法,例如 substring Strlen、strstr、strrev、strtr。。。 #272、找到当前目录下文件名含有 中的php文件。 Find . –name **.php #273、投票 vota实现 投票标题 varchar(255) 选项内容 varchar(255) 用户登录id vota_uid 投票用户id vota_vid 投票时间 vota_time 投票总数 vota_total 1)创建数据库表结构 有没列举出的字段 自己补充,如vota_id(可以写出sql语句,也可以画图说明) Create table vota(id int auto_increment primarykey,title varchar(255),content varchar(155)); 2)有人刷恶意投票 请提供解决恶意刷票的方案 多种方案 用$_SERVER[‘REMOTE_ADDR’]判断,一个IP只能投票一次。 限制用户登录投票 验证码 3)现在有某几个热门的投票 服务器表示鸭梨很大 有什么给力的解决方案 采用读写分离 #274、HTTP1.0中 301 ,302状态代表什么意思? 301 Moved Permanently 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将申请人转到新位置。您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置302 Found 服务器目前从不同位置的网页响应请求,但申请人应当继续使用原有位置来响应以后的请求。此代码与响应 GET 和HEAD 请求的 301 代码类似,会自动将申请人转到不同的位置,但不应使用此代码来告诉 Googlebot 页面或网站已经移动,因为 Googlebot 要继续抓取原来的位置并编制索引 #275、请说明如何优化mysql数据库 1)尽量使用缓存机制减少连接数据库的次数 2)通过sql语句的优化减少每次sql语句执行的时间 3)尽量精准的从数据库中获取内容,减少select * 。。。这样的语句 #276、===和==的区别?举例说明? 答:===是严格等于 ==是等于 如$a=1.0 $b=(int)$a $a===$b 为false 而 $a==$b为true; #277、if($a==$b) print(“$a==$b”); else print(“$a!==$b”);写出输出的结果 答:运行的结果是 == 因为$a 和$b没有值 #278、define(“$myvalue”,10); $myarray[10]=”dog”; $myarray[]=”human”; $myarray[“myvalue”]=”cat”; $myarray[“dog”]=”cat”; print ”The value is:”; print $myarray[“myvalue”]; 答:cat #279、怎样防止图片防盗连接? 1)可以把真实的图片做为背景图片,而使用一张透明图片匹配尺寸并覆盖到真实图片上面。

这样,当别人使用右键查看或保存图片的时候,得到的是这张透明图片。 2)自动切片这是一个非常有效的图片防盗链方法. 它支持两种方案: 让用户下载到的是被裁切过的图片。 让用户下载到的是打上水印的图片。 当用户尝试下载图片的时候,它就会进行截切或添加水印操作,但是这个方法也有很大的劣势: 造成太多的服务器请求负荷,对网站整体性能影响不好 你将拥有许多的图片文件 3)使用带水印的图片 (预先生成) 预先给图片添加水印也是个防止图片被盗的有效方法,就算别人要盗,至少也为你免费宣传了一下自己的网站。 但缺点也来了: 图片会看的不清楚或不美观了(这对于图片展示类的网站尤其重要,但又正是该类网站特尤其图片防盗) 可以下载然后裁剪水印(当然,如果你是那种把水印放在图片中间或水印有图片这么1/3大的家伙,就不用担心这个问题了) 要手动添加水印的话,可以使用photoshop,GIMP,轻松水印等软件。也可以选择下面的一些在线图片水印工具 4)使用水印 (服务器端生成) 使用服务器端自动为图片添加水印,是件省心的事情。只是需要一些脚本知识。 5)使用Flash来显示图片 6)基于浏览器的图片防盗 通过JavaScript来禁用点键菜单 是图片防盗的一个方法,但它仅仅是对于网络菜鸟来说,中等点的网民可以很轻松的查看到代码获取图片地址,再高等点的可以轻松破解,禁用你的禁用! 所以这并不是一个好方法,更重要的是它是极不利于用户浏览体验的。 这有一个折中的方法,你可以通过一个jQuery 插件 来实现仅仅禁用保存功能. 7)禁用IE6的图像工具条 在IE6下,当鼠标悬浮在一张图片上时,会出现工具条,上面有保存功能,你可以使用下面的代码禁用:

280、下面哪条命令可以把复制为?A

A.cp | B.cat | C.cat | B.copy |

281、以下代码输出结果是?

for($i=0;$i<10;$i++){ $sum+=0.1; } echo (int)$sum; 输出0

282、简述你使用的过JQuery插件的优缺点(说两个以上)。

autocomplete,tags-input、cookie

283、公司有800员工资料都存在employee表里写一个SQL语句统计出重名员工的人数?

select name, count(*) as num from stu group by name having count(name) > 1;

284、PHP URL重写(伪静态)

1)让Apache支持mod_rewrite 打开Apache配置文件,找到如下:#LoadModule rewrite_module modules/mod_rewrite.so 开启rewrite,去点前面"#" 2)开始重载Allowoverride 查找apache配置文件找到如下 Options FollowSymLinks AllowOverride None 将AllowOverride None改为 AllowOverride All 修改

APMServ默认虚拟主机

NameVirtualHost :803 ServerName * DocumentRoot "D:/APMServ/APMServ5.2.0/www/htdocs" Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex AllowOverride All Order Deny,Allow Allow from all AllowOverride none 改为 All 3)写规则,匹配页面 apache配置文件 RewriteEngine On RewriteRule RewriteRule (.).html $ [L] #匹配所有页面 4)新建.htaccess 内容如下 RewriteEngine On RewriteRule RewriteRule (.*).html $ [L] #匹配所有页面 为了方便测试,我在htdocs目录下建立一个的文件 <?php echo "You have selected product #". $_GET["id"]; ?> http://localhost:803/?id=2; Result:You have selected product #2;

285、PHP伪静态如何实现?

PHP伪静态,主要是为了隐藏传递的参数名;于网上搜索后整理伪静态四法 <?php //伪静态方法一

// localhost/php100/?id|1@action|2 $Php2Html_FileUrl = $_SERVER["REQUEST_URI"]; echo $Php2Html_FileUrl."
";// /php100/?id|1@action|2 $Php2Html_UrlString = str_replace("?","",str_replace("/", "", strrchr(strrchr($Php2Html_FileUrl, "/"),"?"))); echo $Php2Html_UrlString."
";// id|1@action|2 $Php2Html_UrlQueryStrList = explode("@", $Php2Html_UrlString); print_r($Php2Html_UrlQueryStrList);// Array ( [0] => id|1 [1] => action|2 ) echo "
"; foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr) { $Php2Html_TmpArray = explode("|", $Php2Html_UrlQueryStr); print_r($Php2Html_TmpArray);// Array ( [0] => id [1] => 1 ) ; Array ( [0] => action [1] => 2 ) echo "
"; $_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1]; } //echo '假静态:$_GET变量
'; print_r($_GET); // Array ( [id|1@action|2] => [id] => 1 [action] => 2 ) echo "
"; echo "


"; echo $_GET[id]."
";// 1 echo $_GET[action];// 2 ?>

<?php //伪静态方法二 // localhost/php100//1/2 $filename = basename($_SERVER['SCRIPT_NAME']); echo $_SERVER['SCRIPT_NAME']."
";// /php100/ echo $filename."
";//

if(strtolower($filename)==''){ if(!empty($_GET[id])){ $id=intval($_GET[id]); echo $id."
"; $action=intval($_GET[action]); echo $action."
"; }else{ $nav=$_SERVER['REQUEST_URI']; echo "1:".$nav."
";// /php100//1/2 $=$_SERVER['SCRIPT_NAME']; echo "2:".$."
";// /php100/ $nav=ereg_replace("^$","",urldecode($nav)); echo $nav."
"; // /1/2 $vars=explode("/",$nav); print_r($vars);// Array ( [0] => [1] => 1 [2] => 2 ) echo "
"; $id=intval($vars[1]); $action=intval($vars[2]); } echo $id.'&'.$action; } ?>

<?php //伪静态方法三

function mod_rewrite(){ global $_GET; $nav=$_SERVER["REQUEST_URI"]; echo $nav."
"; $_name=$_SERVER["SCRIPT_NAME"]; echo $_name."
"; $nav=substr(ereg_replace("^$_name","",urldecode($nav)),1); echo $nav."
"; $nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//这句是去掉尾部的.html或.htm echo $nav."
"; $vars = explode("/",$nav); print_r($vars); echo "
"; for($i=0;$i"; $action=$_GET["action"];//结果为'_add' echo $action; ?>

<?php //伪静态方法四

//利用server变量 取得PATH_INFO信息 该例中为 /1,100, 也就是执行脚本名后面的部分 if(@$path_info =$_SERVER["PATH_INFO"]){ //正则匹配一下参数if(preg_match("/\/(\d+),(\d+),(\d+).html/si",$path_info,$arr_path)){ $gid =intval($arr_path[1]); //取得值 1 $sid =intval($arr_path[2]); //取得值100 $softid =intval($arr_path[3]); //取得值8630 }else die("Path:Error!"); //相当于?gid=1&sid=100&softid=8630 }else die('Path:Nothing!'); ?>

286、PHP防注入如何实现?

主要是为了防止恶意写入后台数据库 //防注入函数 function inject_check($sql_str){ $check=eregi('select|insert|update|delete|\'|\/*|*|..\/|.\/|union|into|load_file|outfile', $sql_str); if($check){ echo "输入非法内容"; exit(); }else{ return $sql_str; } } //接收传递参数后进行转换 $_GET[type]=inject_check($_GET[type]); //之后再使用转换后的参数

287、URL重写是实现PHP伪静态

应该这样说才是,URL重写是实现PHP伪静态的方式之一, 具体如: 温馨提示 换成温馨提示 这种伪静态方式访问的话,其他最简单的方法是在网站根目录下面建一个.htaccess 文件,其内容如下: RewriteEngine on RewriteRule /([d]+)-([d]+)-([d]+).html /?x=$1&y=$2&z=$3

最后再APACHE的虚拟域名配置文件里面找到项目所用的域名设置项, 在其中再找到,将AllowOverride None 改成 AllowOverride All, 若没有,则增加如下内容 Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all DirectoryIndex 在中间重启APACHE即可. 你规则前面的 ^([0-9])-[a-zA-Z0-9&-+._'"]/ 是正表达式,这里面用()括起来的东西,在后面依次使用$1、$2来引用,叫做匹配项。

在你的这个例子中,$1对于的就是([0-9]*),就是前面的所有数字 RewriteRule ^id/([0-9]+)$ ?id=$1

前面的 你自己可以随便搞

下面是我站的 /还有提醒一下!@linux 下的 规则有所不同

RewriteEngine On RewriteBase / RewriteRule ^type/(.)/order/([0-9]+)$ index_c.php?type=$1&order=$2 RewriteRule ^type/(.)/order/([0-9]+)/page/([0-9]+)$ index_c.php?type=$1&order=$2&page=$3

RewriteRule ^user/([0-9]+)$ index_c.php?uid=$1

RewriteRule ^user/([0-9]+)/type/(.)/page/([0-9]+)$ index_c.php?uid=$1&type=$2&page=$3 RewriteRule ^user/([0-9]+)/type/(.)$ index_c.php?uid=$1&type=$2

RewriteRule ^user/([0-9]+)/myclick/(.)/page/([0-9]+)$ index_c.php?uid=$1&myclick=$2&page=$3 RewriteRule ^user/([0-9]+)/myclick/(.)$ index_c.php?uid=$1&myclick=$2 RewriteRule ^user/([0-9]+)/page/([0-9]+)$ index_c.php?uid=$1&page=$2

RewriteRule ^re1d-([0-9]+)$ /?itemid=$1 RewriteRule ^s=(.*)$ /?s=$1

RewriteRule ^type/(.)/page/([0-9]+)$ index_c.php?type=$1&page=$2 RewriteRule ^type/(.)$ index_c.php?type=$1 [L] 现在的搜索引擎越来越对静态页面友好,以前不知道自己的服务器支不支持静态化,今天向空间商咨询后发现,其实自己的服务器是支持静态化的,于是在DZ论坛上下来个.htaccess文件修改了其中的一个代码,上传到我的linux服务器,到Discuz!论坛后台选择静态化选项,前台打开一看,呵呵 已经显示静态化了 下面是修改的.htaccess文件文件内容

将 RewriteEngine 模式打开

RewriteEngine On

修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /

RewriteBase /

Rewrite 系统规则请勿修改

RewriteRule ^archiver/((fid|tid)-[w-]+.html)$ archiver/?$1 RewriteRule ^forum-([0-9]+)-([0-9]+).html$ ?fid=$1&page=$2 RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ ?tid=$1&extra=page%3D$3&page=$2 RewriteRule ^space-(username|uid)-(.+).html$ ?$1=$2 RewriteRule ^tag-(.+).html$ ?name=$1 如果你有需要将这段代码保存为.htaccess文件上传到空间即可,再到后台更改选择静态化就OK了.

288、HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。。。

200 : 请求成功,请求的数据随之返回。 301 : 永久性重定向。 302 : 暂时行重定向。 401 : 当前请求需要用户验证。 403 : 服务器拒绝执行请求,即没有权限。 404 : 请求失败,请求的数据在服务器上未发现。 500 : 服务器错误。一般服务器端程序执行错误。 503 : 服务器临时维护或过载。这个状态时临时性的。

289、PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 到5.1的重大改进等等。undone

290、 HEREDOC介绍

一种定义字符串的方法。 结构: <<<。在该提示符后面,要定义个标识符(单独一行), 然后是一个新行。接下来是字符串 本身, 最后要用前面定义的标识符作为结束标志(单独一行) 注意: 标识符的命名也要像其它标签一样遵守PHP的规则: 只能包含字母、数字和下划线,并且必须以字母和下划线作为开头

291、一些编译php时的configure 参数

–prefix=/usr/local/php php安装目录 –with-config-file-path=/usr/local/php/etc 指定位置 –with-mysql=/usr/local/mysql mysql安装目录,对mysql的支持 –with-mysqli=/usr/local/mysql/bin/mysql_config mysqli文件目录,优化支持 –enable-safe-mode 打开安全模式 –enable-ftp 打开ftp的支持 –enable-zip 打开对zip的支持 –with-bz2 打开对bz2文件的支持 –with-jpeg-dir 打开对jpeg图片的支持 –with-png-dir 打开对png图片的支持 –with-freetype-dir 打开对freetype字体库的支持 –without-iconv关闭iconv函数,种字符集间的转换 –with-libxml-dir 打开libxml2库的支持 –with-xmlrpc 打开xml-rpc的c语言 –with-zlib-dir 打开zlib库的支持 –with-gd 打开gd库的支持 更多可以使用 ./configure help 查看

292、 向php传入参数的三种方法。

/* * 方法一 使用$argc $argv * 在命令行下运行 /usr/local/php/bin/php ./ -f 123 -g 456 */ // if ($argc > 1){ // print_r($argv); // }

/**
 * 运行结果
 *
 sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./ -f 123 -g 456
    Array
    (
        [0] => ./
        [1] => -f
        [2] => 123
        [3] => -g
        [4] => 456
    )
 */


 /*
 * 方法二 使用getopt函数()
 *  在命令行下运行 /usr/local/php/bin/php ./ -f 123 -g 456
 */

// $options = "f:g:"; // $opts = getopt( $options ); // print_r($opts);

/**
 * 运行结果
 *
 sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./ -f 123 -g 456
    Array
    (
        [f] => 123
        [g] => 456
    )
 */

/*
 * 方法三 提示用户输入,然后获取输入的参数。有点像C语言
 *  在命令行下运行 /usr/local/php/bin/php ./
 */
fwrite(STDOUT, "Enter your name: ");
$name = trim(fgets(STDIN));
fwrite(STDOUT, "Hello, $name!");
/**
 * 运行结果
 *
 sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./
 Enter your name: francis
 Hello, francis!
 */

293、 error_reporting 等调试函数使用

error_reporting() 函数能够在运行时设置中 error_reporting 指令。 所以可以再程序中随时调节显示的错误级别。 使用此函数时 display_errors必须是打开状态。

294、 posix和perl标准的正则表达式区别?

定界符,posix没有perl有(任意非数字、字母或反斜线”\”的字符) 修正符,posix没有perl有 []之外不一致的元字符,”.”在posix中匹配除了换行外的字符,perl中匹配任意字符 []之内不一致的元字符,”-”在posix中[a-c-e]会抛出错误,perl中[a-c-e]等价于[a-e]

295、Safe_mode 打开后哪些地方受限.

启动safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数. 所有操作文件的函数将只能操作与脚本UID相同的文件.

296、写代码来解决多进程/线程同时读写一个文件的问题。

PHP是不支持多线程的,可以使用php的flock加锁函数实现。 $fp = fopen("/tmp/", "w+"); if (flock($fp, LOCK_EX)) { // 进行排它型锁定 fwrite($fp, "Write something here\n"); flock($fp, LOCK_UN); // 释放锁定 } else { echo "Couldn't lock the file !"; } fclose($fp);

297、写一段上传文件的代码。

Send this file:

$uploads_dir = '/uploads'; foreach ($_FILES["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["tmp_name"][$key]; $name = $_FILES["name"][$key]; move_uploaded_file($tmp_name, "$uploads_dir/$name"); } }

298、Mysql 的存储引擎,myisam和innodb的区别。

1) MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持. 2)MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快. 3)InnoDB不支持FULLTEXT类型的索引. 4)InnoDB 中不保存表的具体行数,也就是说, 执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行, 但是MyISAM只要简单的读出保存好的行数即可. 5)对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。 6)DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。 7) LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表, 但是对于使用的额外的InnoDB特性(例如外键)的表不适用. 8)MyISAM支持表锁,InnoDB支持行锁。

299、介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。undone

xdebug是php调试工具 apc是缓存工具

300、MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

1)设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。 2)选择合适的表字段数据类型和存储引擎,适当的添加索引。 3)mysql库主从读写分离。 4)找规律分表,减少单表中的数据量提高查询速度。 5)添加缓存机制,比如memcached,apc等。 6)不经常改动的页面,生成静态页面。 7)书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.

301、写出一种排序算法(原理),并说出优化它的方法。

快速排序,随机化 function swap(&$n, &$m) { $temp = $n; $n = $m; $m = $temp; }

function partition(&$a, $p, $r) { $x = $a[$r]; $i = $p - 1; for ($j = $p; $j < $r; $j++) { if ($a[$j] < $x) { $i++; swap($a[$i], $a[$j]); } } $i++; swap($a[$i], $a[$r]); //echo '

'; var_dump($a); echo '
'; return $i; }

function quick_sort(&$a, $p, $r) { if ($p < $r) { $q = partition($a, $p, $r); quick_sort($a, $p, $q - 1); quick_sort($a, $q + 1, $r); } }

function randomized_partition(&$a, $p, $r) { $i = rand($p, $r); swap($a[$r], $a[$i]); return partition($a, $p, $r); }

function randomized_quick_sort(&$a, $p, $r) { if ($p < $r) { $q = randomized_partition($a, $p, $r); //echo '
q = ', $q; randomized_quick_sort($a, $p, $q - 1); randomized_quick_sort($a, $q + 1, $r); } }

302、 请简单阐述您最得意的开发之作。undone

303、对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?

统一布码监测

304、请介绍Session的原理,大型网站中Session方面应注意什么?undone

为解决html无状态协议问题,记录客户端状态信息,使用session,可以通过url传递或cookie传递。

305、测试php性能和mysql数据库性能的工具,和找出瓶颈的方法?undone

306、 介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。undone

307、您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。undone

308、大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?undone

309、相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。?undone

310、一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。

/*

  • 约瑟夫环 */ function josehpus1($n, $m) { $a = array(); for ($i = 1; $i <= $n; $i++) { $a[] = $i; } $i = 1; while (count($a) > 1) { $x = array_shift($a); if ($i % $m != 0) { $a[] = $x; } else { echo '
    - ' . $x . ' = '; print_r($a); } $i++; } return $a[0]; }

function josehpus2($n, $m) { $s = 0; for ($i = 2; $i <= $n; $i ++) { $s = ($s + $m) % $i; } return $s + 1; }

echo josehpus1(10, 7); echo '
'; echo josehpus2(10, 7);

311、linux下查看当前系统负载信息的一些方法。Undone

w,Uptime 查看系统运行时间、用户、负载 Vmstat
Top 查看系统整体状态

312、vim的基本快捷键。undone

313、 ssh 安全增强方法;密码方式和rsa key 方式的配置。undone

314、 rpm/apt/yum/ports 装包,查询,删除的基本命令。

安装 rpm -ivh apt-get install package yum install package 删除 rpm -e package apt-get remove package yum remove package 查询 rpm –q string apt-cache search string yum search string

315、Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。undone

316、 gdb,strace,valgrind的基本使用.undone

317、css盒模型。undone

318、java中的prototype。

原型链,用于实现继承。 方法一: var a = { x: 10, calculate: function (z) { return + + z } };

var b = { y: 20, proto: a };

var c = { y: 30, proto: a };

// call the inherited method (30); // 60 (40); // 80 方法二: function a() { = 1; = function(){ return + 2; } }

var obj1 = new a(); var obj2 = new a();

319、java中this对象的作用域。

This是执行上下文环境的一个属性,而不是某个变量对象的属性。

320、IE和firefox事件冒泡的不同。undone

321、什么是怪异模式,标准模式,近标准模式。undone

322、DTD的定义?

文档类型定义

323、IE/firefox常用hack?

.content .test { width: 200px; height: 200px; background: #f60; /all/ background: #06f9; /IE/

324、firefox,IE下的前端js/css调试工具。

Console、WebDeveloper

325、面试官看过你的简历,会问一些你做的项目的用户量、pv、吞吐量、相关难点和解决方法等。undone

326、数据库设计经验,为什么进行分表? 分库? undone

一般多少数据量开始分表? 分库? 分库分表的目的? 什么是数据库垂直拆分? 水平拆分? 分区等等?可以举例说明

327、web开发方面会遇到哪些缓存? 分别如何优化? undone

328、给你256M的内存,对10G的文件进行排序(文件每行1个数字),如何实现? 对10G的文件进行查找如何实现? 统计10G文件每个关键字出现的次数如何实现?

undone 300万个字符串最多(假设没有重复,都是最大长度)占用内存3M*1K/4=0.75G。所以可以将所有字符串都存放在内存中进行处理。 可以使用key为字符串(事实上是字符串的hash值),值为字符串出现次数的hash来统计每个每个字符串出现的次数。并用一个长度为10的数组/链表来存储目前出现次数最多的10个字符串。 这样空间和时间的复杂度都是O(n)。

329、假如你现在是12306火车订票的设计师,你该如何设计满足全国人民订票? undone

330、假如有1亿用户的访问量,你的服务器架构是怎样的? 用户信息的存储方案如何设计? undone

331、如果你是技术组长,所带团队任务进度无法完成你该如何解决? undone

如果在进度排满的前提下插入任务,你该如何保证总进度不延期? undone 如果有的工程师今天预定任务没有完成,你该如何解决? undone

332、从你的经验方面谈一下如何构建高性能web站点? 需要哪些环节? 步骤? 每个步骤需要注意什么如何优化等? undone

333、 如何处理多服务器共享session? Undone

Mysql、memcache

334、 一个10G的表,你用php程序统计某个字段出现的次数,思路是? undone

335、会告诉你一个nginx日志例子,用你认为最佳的编程语言统计一下http响应时间超过1秒的前10个url? undone

336、给你一个mysql配置文件,用你认为最佳的编程语言解析该文件? undone

337、给你一个url,在nginx配置一下rewrite指定到某个具体路径? undone

338、一个php文件的解释过程是? 一般加速php有哪些? 提高php整体性能会用到哪些技术? undone

1)解析过程 解析命令行参数,初始化环境,编译执行PHP代码,zend引擎,清理环境并返回退出 2)加速 PHP加速软件是一种将PHP程式码编译之后所产生的bytecode暂存在共享内存内供重复使用,以提升执行效率的插件软件。 如:Zend Optimizer、APC、XCache

339、chrome号称为多线程的,所以多线程和多进程的区别为? undone

进程是资源分配的最小单位,线程是CPU调度的最小单位 线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。340、 php在2011年底出现hash碰撞,hash碰撞原理为? 如何进行修复? PHP是使用单链表存储碰撞的数据,因此实际上PHP哈希表的平均查找复杂度为O(L),其中L为桶链表的平均长度;而最坏复杂度为O(N),此时所有数据全部碰撞,哈希表退化成单链表。 哈希表碰撞攻击就是通过精心构造数据,使得所有数据全部碰撞,人为将哈希表变成一个退化的单链表,此时哈希表各种操作的时间均提升了一个数量级,因此会消耗大量CPU资源,导致系统无法快速响应请求,从而达到拒绝服务攻击(DoS)的目的。 攻击者只要构造一个含有大量碰撞key的post请求,就可以达到攻击的目的。具体做法不再演示。 在>=PHP5.3.9的版本中增加了一个配置项max_input_vars,用于标识一次http请求最大接收的参数个数,默认为1000。 理论上,只要PHP代码中某处构造Array的数据依赖于外部输入,则都可能造成这个问题,因此彻底的解决方案要从Zend底层HashTable的实现动手。一般来说有两种方式,一是限制每个桶链表的最长长度;二是使用其它数据结构如红黑树取代链表组织碰撞哈希(并不解决哈希碰撞,只是减轻攻击影响,将N个数据的操作时间从O(N^2)降至O(NlogN),代价是普通情况下接近O(1)的操作均变为O(logN))。

340、 使用命令可以查看Linux的启动信息?B

A.mesg –d B.demesg C.cat /etc/mesg D.cat /var/mesg

341、web不安全因素有哪些? 分别如何防范? undone

对于以往安全事故的分析表明,大多数安全问题都属于下面三种类型之一: 服务器向公众提供了不应该提供的服务。 服务器把本应私有的数据放到了可公开访问的区域。 服务器信赖了来自不可信赖数据源的数据。

342、假如两个单链表相交,写一个最优算法计算交点位置,说思路也可以? undone

343、nginx负载均衡有哪些? 如果其中一台服务器挂掉,报警机制如何实现? undone

344、不优化前提下,apache一般最大连接数为? nginx一般最大连接数为? mysql 每秒insert ? select ? update ? delete? undone

apache默认最大连接数256,nginx默认是1024

345、mysql 数据类型有哪些 ? 分别占用多少存储空间 ? undone

346、nginx设置缓存js、css、图片等信息,缓存的实现原理是? undone

347、如何提高缓存命中率? 如何对缓存进行颗粒化? undone

348、php的内存回收机制是? undone

在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁;这是PHP的GC垃圾处理机制,防止内存溢出。 当一个PHP线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC进程一般都跟着每起一个SESSION而开始运行的.gc目的是为了在session文件过期以后自动销毁删除这些文件. __destruct() 析构函数,是在垃圾对象被回收时执行。 unset 销毁的是指向对象的变量,而不是这个对象。 <?php gc_enable(); // Enable Garbage Collector var_dump(gc_enabled()); // true var_dump(gc_collect_cycles()); // # of elements cleaned up gc_disable(); // Disable Garbage Collector ?>

349、linux监视一个日志文件 的最新内容?

tail –f 查看文件最后10行,动态显示。

350、查看当前服务器的HTTP连接有哪些?

假设Apache Httpd ps –le | grep httpd 说明。。 pgrep httpd netstat –an | grep 80

351、说说Linux下的find命令和grep命令的区别?

Find查找文件或目录 Grep 在文件内容中/输出结果中查找字符串

352、如何实现每天0点钟重新启动服务器?

Crontab命令格式:crontab –l/-i/-r/-e 脚本/命令 -l 显示用户crontab内容 -I 删除用户crontab文件前提示 -r 删除用户的crontab文件 -e 编辑用户的crontab文件 时间段含义: 依次是:分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6) Crontab –e 0 0 * * * /sbin/reboot 应该写绝对路径

353、请写出5个常用的unix操作命令?

Ls cp touch mkdir rm cat kill ps

354、rm -rf * 是什么意思,其中 f 有什么作用?

–r表示递归(删除目录),f强制(可以不提示删除),* 通配符 删除当前目录下所有文件

355、Linux压缩文件和解压文件的命令?

Gzip tar bzip zip Gunzip tar bunzip unzip

356、Linux的目录进行遍历,编写shell脚本?

Ls –R Tree 以树状结构显示目录

357、apache默认使用进程管理还是线程管理?如何判断并设置最大连接数?

使用进程管理 startServers maxClients 设置最大连接数

358、当前目录下有一个文件为 , 如何修改文件,将其指定为使用 /bin/bash 运行,如何修改其权限为所有用户可读写,所有用户可执行?

指定用哪个shell来解析,在文件头加shell路径

!/bin/bash

修改文件权限 Chmod 777

359、当前目录下有一个文件为 ,如何修改其所有人为root?

Chown root

360、在linux 请写出一种自动定时备份某一个文件的方法和具体实施流程,要求每天凌晨3 点的时候备份一次。Undone

Crontab –e 0 3 * * * 以某个命令为例 Cp –p Tar Scp

说明:每个命令要写绝对路径、错误日志输出 2>>、时间戳、完全备份和增量备份

361、crond后台常驻程序(daemon)用于:D

A.负责文件在网络中的共享 B.管理打印子系统Manages theprinting subsystem C.跟踪管理系统信息和错误 D.管理系统日常任务的调度(scheduing)

362、怎么了解您在当前目录下还有多大空间?C 正确答案du –s .

A.Use df B.Use du / C.Use du. D.Use df.

本文地址:[乐意黎原创]PHP 老司机指南-****博客