PHP面试题

11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分) 
    Smarty Discuz  FastTemplate 
13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分) 
    首先,确认服务器硬件是否足够支持当前的流量 
    其次,优化数据库访问。 
    第三,禁止外部的盗链。 
    第四,控制大文件的下载。 
    第五,使用不同主机分流主要流量 
    第六,使用流量分析统计软件。 
14、用PHP写出显示客户端IP与服务器IP的代码(1分) 
    客户端IP: echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR'); 
    服务器IP: 
       $serverIP=gethostbynamel("webpro01");   
   echo   "Server IP Address:";   
   for($i=0;   $i      echo   "


".$netscapeftp[$i];   
    }   
   echo   "
";   
   ?> 
15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分) 
   1、PHP程序执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分。 
   2、PHP程序执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。 
   3、require() :如果文件不存在,会报出一个fatal error.脚本停止执行 
   4、include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行 
   5、推荐使用require_once()和include_once(),可以检测文件是否有重复包含。 
16、如何修改SESSION的生存时间(1分). 
   1.将php.ini 中session.gc_maxlifetime 设置为 9999(默认为 1440)重启 apache 即可 
   2.$savePath = "./session_save_dir/"; 
     $lifeTime = 24 * 3600; 
     session_save_path($savePath); 
     session_set_cookie_params($lifeTime); 
     session_start(); 
   3.setcookie() 或session_set_cookie_params($lifeTime) 
17、有一个网页地址, 比如PHP开发资源网主页: http://www.baidu.com/index.html,如何得到它的内容?($1分) 
   //需要读取的page地址 
   $http_page_url="http://www.baidu.com/index.html"; 
   //打开远程文件 
   $read_file=fopen($http_page_url,"rb"); 
   if (!feof($read_file)) { 
   //读取远程文件 
   $file_stream = ""; 
   do { 
      $data = fread($read_file, 8192); 
      if (strlen($data) == 0) { 
          break; 
      } 
      $file_stream.= $data; 
   } while(true); 
   } 
   echo $file_stream; //输出内容 
   对 PHP 5 及更高版本可以: 
        $handle = fopen("http://www.baidu.com/index.html", "rb"); 
     $contents = stream_get_contents($handle); 
     fclose($handle); 
     echo $contents; 
   ?> 
   最简单的方法是调用函数: 
        print file_get_contents('http://www.baidu.com/index.html'); 
   ?> 
18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分) 
   状态值为401,代表未被授权; header("Location: http://www.php.net"); 
19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分) 
    heredoc的语法是用"<<<"加上自己定义成对的标签,在标签范围內的文字视为一个字符串 
           $str = <<        I saw a dog yesterday. 
       EOD; 
    ?> 
    需要注意的是: 
    1、"<<<"后面的EOD是自己定义的标签名称,必须要成对,而且后面要加上分号表示结束。 
    2、结束的标签前面最好不要有空格,以免发生错误! 
20、谈谈asp,php,jsp的优缺点(1分) 
22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分) 
SELECT username FROM members ORDER BY posts DESC LIMIT 0,10; 
23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分) 
Call by value (传值):指从主程序将变量内容传递给函数的参数,无论在函数内如何修改、变化该参数值,都不影响主程序原本变量的内容,即使变量名称相同。 
调用方式:函数名(参数1,参数2); 
Call by address (传引用):指从主程序将变量地址传递给函数的参数,在函数内若修改、变化该参数值,会修改主程序原本变量的内容,即主程序与函数存取的是同一变量。 
调用方式:函数名(&参数1,&参数2); 
按值传递:函数范围内对值的任何改变在函数外部都会被忽略 
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。 
按引用传递则不需要复制值,对于性能提高很有好处。 
24. 在PHP中error_reporting这个函数有什么作用? (1分) 
error_reporting( ) 用于设置php的侦听错误的级别.[用来配置错误信息回报的等级]. 
// Turn off all error reporting 
error_reporting(0); 
// Report ** running errors 
error_reporting(E_ERROR | E_WARNING | E_PARSE); 
// Reporting E_NOTICE can be good too (to report uninitialized 
// variables or catch variable name misspellings ...) 
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 
// Report all errors except E_NOTICE 
// This is the default value set in php.ini 
error_reporting(E_ALL ^ E_NOTICE); 
// Report all PHP errors 
error_reporting(E_ALL); 
// Same as error_reporting(E_ALL); 
ini_set('error_reporting', E_ALL); 
?> 
25. 请写一个函数验证电子邮件的格式是否正确 (2分) 
(1)Javascript实现: 
function checkEmail(form){ 
re=/^[^\s]+@[^\s]+\.[^\s]+$/; 
if(re.test(form.value)){ 
         alert(‘符合验证’); 
}else{ 
     alert(‘验证失败’); 


(2)php实现 
function CheckMailAdr($str){ 
return(eregi(“^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$“,$str)); 

(3) 
function validateEmail($email) 

    if(eregi('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$',$email) ){ 
        return true; 
    }else{ 
        return false; 
    } 

26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分) 
说明:例如有一个脚本 www.domain.com,传给他的参数有参数1,参数2,参数3…。传递参数的方法有可能是GET有可能是POST,那么现在请写出类似:http://www.domain.com/script.php?参数1=值1&参数2=值2…..  的结果。 
1获取所有参数:可以用以下方法: 
//获取post的数据 
while (list($var, $value) = each($HTTP_POST_VARS)) 

     echo “$var = $value n“; 

//获取get方式的数据 
while (list($var, $value) = each($HTTP_GET_VARS)) 

     echo “$var = $value n“; 

2. echo $_SERVER['scrīpt_FILENAME']."?".$_SERVER['QUERY_STRING']; 
27、JS表单弹出对话框函数是?获得输入焦点函数是? (2分) 
弹出对话框: alert(),prompt(),confirm() 
获得输入焦点 focus() 
搜索更多相关主题的帖子: 笔试 PHP 
UID1598 帖子937 精华0 积分1811 阅读权限70 在线时间97 小时 注册时间2009-2-16 最后登录2009-5-3 查看详细资料 
TOP 
qqww123456 金牌会员 
积分1811 ?发短消息?加为好友?当前离线 
2# 大 中 小 发表于 2009-4-6 11:34  只看该作者 28、JS的转向函数是?怎么引入一个外部JS文件?(2分) 
转向函数 window.location.href 
引入外部JS文件: 
29、foo()和@foo()之间有什么区别?(1分) 
@foo()有控制错误输出 
30、如何声明一个名为”myclass”的没有方法和属性的类? (1分) 
class myclass{ } 
31、如何实例化一个名为”myclass”的对象?(1分) 
$newmyclass = new myclass(); 
32、你如何访问和设置一个类的属性? (2分) 
$newmyclass = new myclass(); 
$temp=$newmyclass->test; 
$newmyclass->test="a"; 
33、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分) 
mysql_fetch_row -- 从结果集中取得一行作为枚举数组 
mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有 
34、GD库是做什么用的? (1分) 
gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 
在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。 
35、指出一些在PHP输入一段HTML代码的办法。(1分) 
1. echo ‘’;直接输出 
2. require include 包含进来一段html代码 
3. 由XML文件得到 
36、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分) 
(a) fget()   (b) file_open() (c) fopen() (d) open_file() 
(c)是正确的 
37、下面哪个选项没有将 john 添加到users 数组中? (1分) 
(a) $users[] = ‘john’; 
(b) array_add($users,’john’); 
(c) array_push($users,‘john’); 
(d) $users ||= ‘john’; 
(b) (d) 均是错误的写法 
38、下面的程序会输入是否?(1分) 
   $num = 10; 
   function multiply(){ 
       $num = $num * 10; 
   } 
   multiply(); 
   echo $num; 
?> 
输出 10 
39、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分) 
表名User 
Name Tel Content Date 
张三 13333663366 大专毕业 2006-10-11 
张三 13612312331 本科毕业 2006-10-15 
张四 021-55665566 中专毕业 2006-10-15 
请根据上面的题目完成代码: 
$mysql_db=mysql_connect("local","root","pass"); 
@mysql_select_db("DB",$mysql_db); 
$result=mysql_query("select * from User where Name='张三'"); 
while($row=mysql_fetch_array($result)) 

    echo $row['Name'].$row['Tel'].$row['Content'].$row['Date']; 
    echo "
"; 

40、如何使用下面的类,并解释下面什么意思?(3) 
class test{ 
function Get_test($num){ 
   $num=md5(md5($num)."En"); 
   return $num; 


双重md5加密 
$testObject = new test(); 
$encryption = $testObject->Get_test("xiaotian_ls"); 
41、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分) 
表名User 
Name Tel Content   Date 
张三 13333663366  大专毕业 2006-10-11 
张三 13612312331  本科毕业 2006-10-15 
张四 021-55665566 中专毕业 2006-10-15 
   (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中 
INSERT INTO User('Name','Tel','Content','Date') VALUES('小王','13254748547','高中毕业','2007-05-06') 
   (b) 请用sql语句把张三的时间更新成为当前系统时间 
UPDATE User SET Date=DATE_FORMAT(NOW(),'%Y-%m-%d') WHERE Name='张三' 
   (c) 请写出删除名为张四的全部记录 
DELETE FROM User WHERE Name='张四' 
42、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分) 
int 数值类型 char 固定长度字符串 varchar 可变长字符串 datetime 日期时间型 text 字符字符串 
char列的长度固定为创建表时声明的长度.varchar列中的值为可变长字符串. 
43、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分) 
AUTO_INCREMENT 
44、写出以下程序的输出结果 (1分) 
$b=201; 
$c=40; 
$a=$b>$c?4:5; 
echo $a; 
?> 

45、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分) 
isset($a) empty($a) 
46、取得查询结果集总数的函数是?(1分) 
mysql_num_rows($res); 
47、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分) 
echo $arr[0]; 
48、请将47题的数组的值用','号分隔并合并成字串输出(1分) 
echo $arr[0].$arr[1].$arr[2]; 
49、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分) 
echo $a{0}; 
50、PHP可以和sql server/oracle等数据库连接吗?(1分) 
可以 
51、请写出PHP5权限控制修饰符(3分) 
private protected public


我来说两句!

发表评论:

◎欢迎参与讨论,请在这儿发表您的观点。

«   2019年7月   »
1234567
891011121314
15161718192021
22232425262728
293031
about关于我

root.wang&老王SEO

邮箱:8#ie3.cn

微博:weibo.com/mldh

lofter

PHP攻城师

SEO攻城师

python爱好者

数据挖掘爱好者

智能硬件爱好者

摄影爱好者

网站分类
搜索
文章归档
友情链接