收藏 分销(赏)

人力资源-php面试集锦.docx

上传人:pc****0 文档编号:8461488 上传时间:2025-02-14 格式:DOCX 页数:63 大小:28.25KB
下载 相关 举报
人力资源-php面试集锦.docx_第1页
第1页 / 共63页
人力资源-php面试集锦.docx_第2页
第2页 / 共63页
点击查看更多>>
资源描述
1在php中把字符串变成数组,用那个方法? (str="2|2|3|6|9|8"变成array=[2|2|3|6|9|8]) 字符串变数组 $arr=("|",$txt); 利用explode函数将字符串转成数组 利用split函数将数组拆分成字符串 2 php语句获取当前时间? date("Y-m-d") 3 .在php中的字符用在html中输出会移动,那么用什么函数解决?(没有理解是什么意思) 4 php定义类用class,那么javascript中用什么定义? function 5 用什么函数获取上传文件的完整路径名? $_FILES[‘userfile’][‘name’](获得客户端机器上声明的文件最初的名字,包括扩展名) 说明:userfile是一个占位符。代表赋给文件上传表单文件的名字。 6 用什么函数获取用户的完整ip名? gethostbyname 7 怎么判断邮件的格式? (1)Javascript实现: function checkEmail(form){ re=/^[^\s]+@[^\s]+\.[^\s]+$/; if(re.test(form.value)){ alert(‘符合验证’); }else alert(‘验证失败’); } } (2)php实现 function CheckMailAdr($str){ return(ereg(“^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$“,$str)); } (3) function validateEmail($email) { if(ereg("^[0-9a-zA-Z_.]{1,}@[0-9a-zA-Z_.]{1,}\\.[a-zA-Z]{1,}$",$ email)){ return true; } else{ return false; } } 8 在mysql中假设表users,用一条语句在表中随机抽取10条记录? select * from users order by rand() limit 10 9 在两个表中知道有一个人叫“名山”,不知道姓什么。怎么找出该人的信息? 10 php中获取文件当前行号的方法? 11 转义字符的写法 用\ 12 smarty中output与display函数的区别? display (string template)是显示模板的作用,需要指定一个合法的模板资源的类型和路径。 13 用PHP打印出前一天的时间格式 2006-5-10 22:21:21 echo date('Y-m-d H:i:s', strtotime('-1 day')); 14 echo(),print(),print_r()的区别 echo是PHP语句, 语句没有返回值, print和print_r是函数,函数可以有返回值(即便没有用) print只能打印出简单类型变量的值(如int,string) print_r可以打印出复杂类型变量的值(如数组,对象) echo -- 输出一个或者多个字符串 15. 能够使HTML和PHP分离开使用的模板 smarty,Heyes Template Class等 16 如何实现PHP、JSP交互? SOAP,XML_RPC,Socket function,CURL都可以实现这些. 17. 使用哪些工具进行版本控制? CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具, 这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端. 18. 如何实现字符串翻转? 方法一: 使用php的strrev()函数 方法二: function ss($str) { $len=strlen($str); $newstr = ''; for($i=$len;$i>=0;$i--) { $newstr .= $str{$i}; } return $newstr; } 19. 优化MYSQL数据库的方法。 (1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。 (2).使用连接(JOIN)来代替子查询(Sub-Queries) (3).使用联合(UNION)来代替手动创建的临时表 (4).尽量少使用 LIKE 、IN等关键字和通配符 (5).使用事务和外键 20. 谈谈事务处理 事务就是一系列的操作,这些操作完成一项任务。只要这些操作里有一个操作没有成功,事务 就操作失败,发生回滚事件。 21. apache+mysql+php实现最大负载的方法 22. 实现中文字串截取无乱码的方法 方法一: 当用 substr 截取中文字符的时候会出现乱码,当然你如果装了 mb 扩展, 用 mb_substr截取就不会出现 这种问题,如果你用的是虚拟主机,主机上又没装 mb扩展的话,你可以用下面的函数截取 # @$string 是将要经行截取的字符串 # @$start 是截取的起始位置 # @$length 是截取的长度 # @最后的$string 是返回的截取以后的字符串 function GBsubstr($string, $start, $length) { if(strlen($string)>$length){ $str=null; $len=$start+$length; for($i=$start;$i<$len;$i++){ if(ord(substr($string,$i,1))>0xa0){ $str.=substr($string,$i,2); $i++; }else{ $str.=substr($string,$i,1); } } return $str.'...'; }else{ return $string; } } 方法二:(不使用mb_substr()方法) function jiequ($str,$len,$language="cn"){ if($language=="cn"){ $len = $len *2; } $new_str = substr($str , 0 ,$len).chr(0).'.....'; return $new_str; } $stt= '我们住在北京市圆明园东门'; echo '截取之前的字符串是:'.$stt."<br>"; echo '截取之后的字符串是:'.jiequ($stt ,4); 方法三: 使用mb_substr()方法。 23. 您是否用过版本控制软件? 如果有您用的版本控制软件的名字是? CVS subversion SVN .您是否用过模板引擎? 如果有您用的模板引擎的名字是? Smarty Discuz 24 对于大流量的网站,您采用什么样的方法来解决访问量问题? 首先,确认服务器硬件是否足够支持当前的流量 其次,优化数据库访问。 第三,禁止外部的盗链。 第四,控制大文件的下载。 第五,使用不同主机分流主要流量 第六,使用流量分析统计软件。 25 用PHP写出显示客户端IP与服务器IP的代码: //显示客户端I function get_client_ip() {# if(getenv('HTTP_CLIENT_IP')) { $client_ip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR')) { $client_ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR')) { $client_ip = getenv('REMOTE_ADDR'); } else { $client_ip = $HTTP_SERVER_VAR['REMOTE_ADDR']; } return $client_ip; } //服务器IP function get_server_ip(){ if (isset($_SERVER)) { if($_SERVER['SERVER_ADDR']) $huoqu_ip=$_SERVER['SERVER_ADDR']; else $huoqu_ip=$_SERVER['LOCAL_ADDR']; } else { $huoqu_ip=getenv('SERVER_ADDR'); } return $huoqu_ip; } 26 表comment记录用户回复内容,字段如下 comment_id 回复id id 文章id,关联message表中的id comment_content 回复内容 现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面 文章id 文章标题 点击量 回复数量 用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0 SELECT message.id id, message.title title, IF(message.`hits` IS NULL,0,message.`hits`) hits, IF(comment.`id` is NULL,0,count(*)) number FROM message LEFT JOIN comment ON message.id=comment.id GROUP BY message.`id`、 27 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分) Call by value (传值):指从主程序将变量内容传递给函数的参数,无论在函数内如何修改、变化该参数值,都不影响主程序原本变量的内容,即使变量名称相同。 调用方式:函数名(参数1,参数2); Call by address (传引用):指从主程序将变量地址传递给函数的参数,在函数内若修改、变化该参数值,会修改主程序原本变量的内容,即主程序与函数存取的是同一变量。 调用方式:函数名(&参数1,&参数2); 按值传递:函数范围内对值的任何改变在函数外部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。 按引用传递则不需要复制值,对于性能提高很有好处。 28 在PHP中error_reporting这个函数有什么作用? (1分) error_reporting( ) 用于设置php的侦听错误的级别.[用来配置错误信息回报的等级]. 29 一个页地址 file_get_contents($url) 30 有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。(该函数必须自己实现,不能使用php函数) 方法一:(使用冒泡排序) <?php echo "利用冒泡方法实现排序<br>"; function bol_sort($array){ $count = count($array); if($count < 0){ return false; } else { for($i=0 ;$i <= $count ; $i++){ for ($j = $count ;$j > $i ;$j --){ if($array[$i] < $array[$j]) { $temp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $temp; } } } } return $array; } $arr = array("5","9","6","8","1"); $newArr = bol_sort($arr); echo "排序前的顺序是:<br>"; foreach ($arr as $a){ echo $a."\n\r"; } echo "<br>"; echo "排序后的顺序是:<br>"; foreach ($newArr as $b){ echo $b."\n\r"; } ?> 方法二:(使用快速排序) <?php echo "利用快速排序方法实现排序<br>"; function quick_sort($array) { if (count($array) <= 1) return $array; $key = $array[0]; $left_arr = array(); $right_arr = array(); for ($i=1; $i<count($array); $i++){ if ($array[$i] >= $key) $left_arr[] = $array[$i]; else $right_arr[] = $array[$i]; } $left_arr = quick_sort($left_arr); $right_arr = quick_sort($right_arr); return array_merge($left_arr, array($key), $right_arr); } $arr1 = array("5","9","6","8","1"); $newArr1 = quick_sort($arr1); echo "排序前的顺序是:<br>"; foreach ($arr1 as $a){ echo $a."\n\r"; } echo "<br>"; echo "排序后的顺序是:<br>"; foreach ($newArr1 as $b){ echo $b."\n\r"; } ?> 31 请举例说明在你的开发过程中用什么方法来加快页面的加载速度。 a,页面减肥 :页面的肥瘦是影响加载速度最重要的因素 ,删除不必要的空格、注释 ,将inline的script和css移到外部文件 可以使用HTML Tidy来给HTML减肥,还可以使用一些压缩工具来给JavaScript减肥 b,减少文件数量 :减少页面上引用的文件数量可以减少HTTP连接数 ,许多JavaScript、CSS文件可以合并最好合并 c,减少域名查询 :DNS查询和解析域名也是消耗时间的,所以要减少对外部JavaScript、CSS、图片等资源的引用,不同域名的使用越少越好 d,缓存重用数据 e.优化页面元素加载顺序 :首先加载页面最初显示的内容和与之相关的JavaScript和CSS ,然后加载DHTML相关的东西 像什么不是最初显示相关的图片、flash、视频等很肥的资源就最后加载 32 在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分) 状态值为401,代表未被授权; header(“HTTP/1.0 404 NOT FOUND”); 33 数函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。 arsort: 对数组进行逆向排序并保持索引关系 bool arsort ( array &$array [, int $sort_flags ] ) error_reporting: 配置错误信息回报的等级,参数 level 是一个整数的位遮罩 (bitmask),语法: int error_reporting(int [level]); 34 PEAR中的数据库连接字符串格式是 35 写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉): /<script[^>].*?>.*?<\/script>/ 或者是 /<script[^>].{1,}.{1,}<\.script>/ (?的作用与{1,}的作用相同) 36 语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。 (1)、PHP程序执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分。 (2)、PHP程序执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。 (3)、require() :如果文件不存在,会报出一个fatal error.脚本停止执行 (4)、include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行 (5)、推荐使用require_once()和include_once(),可以检测文件是否有重复包含。 37 类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。 serialize() /unserialize() 38 SQL JOIN的含义是中LEFT(自然左外连接)。如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生 (有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出 各个学生姓名及对应的的各科总成绩,则可以用SQL语句 select tbl_user.name , count(tbl_score.score) as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID 39 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。 <?php echo "*******遍历文件夹下的所有文件*******<br>"; 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; } } $tt= "F:/yan"; print_r(my_scandir($tt)); ?> 40 简述论坛中无限分类的实现原理(树形结构) 41 谈谈asp,php,jsp的优缺点 ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运 行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script) 作为自己的开发语言。   PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法 , 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数 据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.ne t)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。   JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病-- 脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Jav a 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Js p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点 程序。   三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。 但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的 第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式 ,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PH P、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web 服务器的技术 ,客户端浏览器不需要任何附加的软件支持。 42 谈谈对mvc的认识 MVC(Model/View/Controller)模式包括三类对象。Model是应用对象,View是它在屏幕上的表示, Controller定义用户界面对用户输入的响应方式。 模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。 1)模型(Model) 模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑. 2)视图(View) 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 3)控制器(controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。 43 写出发贴数最多的十个人名字的SQL,利用下表:SELECT username FROM members ORDER BY posts DESC LIMIT 0,10; 44 写出session的运行机制 45 防止SQL注射漏洞一般用_____函数 46将用户用post方式传递的数据写入mysql数据库时应当如何处理? 47.php远程获取网页的方式 <?php $url = ''; $lines_array = file($url); echo $lines_array; echo "<br/>"; $lines_string = implode('', $lines_array); eregi("<title>(.*)</title>", $lines_string, $head); echo "head:".$head; echo "<br/>"; print_r($head); echo "<br/>"; echo "title:".$head[1]; ?> 48 session和cookie的区别 1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。 2、session中保存的是对象,cookie中保存的是字符串。 3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。 4、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服