牛骨文教育服务平台(让学习变的简单)
博文笔记

【总结】PHP常见面试题汇总(一)

创建时间:2017-09-11 投稿人: 浏览次数:475
[php] view plain copy  print?
  1. /** 
  2.  * 第1题:用PHP打印出上周的时间格式,如:"2015-01-22 14:42:09" 
  3.  */  
  4.   
  5. echo date("Y-m-d H:i:s",strtotime("-1 day"))."<br/>";  




[php] view
 plain copy


 print?

  1. /** 
  2.  * 第2题:用PHP打印出上周的时间格式,如:"2015-01-15 14:42:09" 
  3.  */  
  4.   
  5. echo date("Y-m-d H:i:s",strtotime("-1 week"))."<br/>";  
[php] view plain copy  print?
  1. /** 
  2.  * 第3题:用PHP打印出上个月的时间格式,如:"2014-12-22 14:42:09" 
  3.  */  
  4.   
  5. echo date("Y-m-d H:i:s",strtotime("-1 month"))."<br/>";  
[php] view plain copy  print?
  1. /** 
  2.  * 第4题:简述一下echo、print、print_r 区别 
  3.  * print_r()主要用来输出数组的结构;echo 和 print 主要用来输出字符串,只不过echo 可同时输出多个字符串,print 只能输出一个字符串; 
  4.  * echo 和 print 区别: 
  5.         (1)使用命令方式来输出字符串,此时不需要小括号;看个人习惯,个人习惯使用命令方式来输出字符串 
  6.         (2)使用函数方式来输出字符串,echo无返回值,print有返回值,成功返回 1,失败返回 0 
  7.  */  
  8.   
  9. print_r(array("hello world"))."<br/>";  
  10.   
  11. echo (print "ddd")."<br/>";  
[php] view plain copy  print?
  1. /** 
  2.  * 第5题:如何实现字符串反转,如:"abcdefg" 反转成 "gfedcba";两种方式:(1)调用php自带的strrev()函数 (2)自定义函数 strrevv 
  3.  */  
  4.   
  5. echo strrev("abcdefg")."<br/>";  
  6.   
  7. $str = "abcdefg";  
  8. function strrevv($str){  
  9.     $len=strlen($str);  
  10.     $newstr = "";  
  11.     for($i=$len-1;$i>=0;$i--){  
  12.         $newstr .= $str{$i};  
  13.     }  
  14.     return $newstr;  
  15. }  
  16. $showstr = strrevv($str);  
  17. echo $showstr."<br>";  
  18.   
  19. //array_reverse():将原数组中的元素顺序反转,创建新的数组并返回;如果第二个参数指定为true,则元素的键名保持不变,如下:  
  20. $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");  
  21. print_r(array_reverse($a));  
  22. //输出结果:  
  23. Array ( [c] => Horse [b] => Cat [a] => Dog )  




[php] view
 plain copy


 print?

  1. /** 
  2.  * 第6题:如何实现中文字符串截取无乱码的方法(mb_*系列函数),首先:需要开启 extension=php_mbstring.dll 扩展 ,结果:"你" 
  3.  */  
  4.   
  5. echo mb_substr("你好",0,1,"gb2312")."<br/>";  
[php] view plain copy  print?
  1. /** 
  2.  * 第7题:用PHP写出显示客户端和服务器端IP的代码 
  3.  */  
  4.   
  5. echo $_SERVER["REMOTE_ADDR"];//客户端IP  
  6. echo $_SERVER["SERVER_ADDR"];//服务器端IP  
  7. echo $_SERVER["PHP_SELF"];//结果:"/index.php"   当前脚本的名称(不包括路径和查询字符串)  
  8. echo $_SERVER["HTTP_REFERER"];//链接到当前页面的来源url  
  9. echo gethostbyname("www.v1pin.com");//获取指定域名的IP地址  
  10. echo getenv("REMOTE_ADDR");//获取客户端IP地址  
  11. echo getenv("SERVER_ADDR");//获取服务器端IP地址   
[php] view plain copy  print?
  1. /** 
  2.  * 第8题:mysql中 IFNULL 控制流函数;IFNULL() 
  3.  * IFNULL(): 
  4.  *      (1)它有两个参数,并且对第一个参数进行判断。 
  5.  *      (2)如果第一个参数不是NULL,函数就会向调用者返回第一个参数;如果是NULL,将返回第二个参数; 
  6.  * 例如: 
  7.  *      SELECT IFNULL(1,2), IFNULL(NULL,10), IFNULL(4*NULL,"false");//结果:"1 10  false" 
  8.  */  
[php] view plain copy  print?
  1. /** 
  2.  * 第9题:简述include与require的区别? 
  3.  * 相同点: 
  4.  *      (1)include与require都能把另外一个文件包含到当前文件中 
  5.  * 异同点: 
  6.  *      (1)使用include时,当包含的文件不存在时系统会报出警告级别的错误,但并不影响程序的后续执行. 
  7.  *      (2)使用require时,当包含的文件不存在时系统会先报出警告级别的错误,接着又报出一个致命性的错误,将终止程序的后续执行. 
  8.  *      (3)require只会解释包含的文件一次,不会再解释第二次,因而效率相对较高;而include则会重复的解释包含的文件 
  9.  *      (4)载入时机不同:require在运行前载入包含文件,include在运行时载入包含文件 
  10.  */  
[php] view plain copy  print?
  1. /** 
  2.  * 第10题:如何获取一个字符串中指定的字符? 
  3.  */  
  4.   
  5.  $str="abcdefg";  
  6.  echo $str{2}."<br/>";  

[php] view plain copy  print?
  1. /** 
  2.  * 第11题:如何批量替换字符串中的特定字符?如:"批量替换$content内容字符串中的所有双引号为单引号" 
  3.  */  
  4.   
  5. $content = str_replace($searchs=array("""), $replaces=array("""), $content);  

[php] view plain copy  print?
  1. /** 
  2.  * 第12题:如何将UEditor或FCkeditor编辑器中的内容转化为JSON串? 
  3.  * 
  4.  *  (1)第一种情况,内容中只有双引号的情况: 
  5.  *      $content="<img alt="" src="../image/20121025/20121025105514_1093.jpg" />"; 
  6.  *      // {"content":"<img alt="" src="../image/20121025/20121025105514_1093.jpg" />"} 
  7.  *      echo json_encode(array("content"=>$content)); 
  8.  *  (2)第二种情况,内容中只有单引号的情况: 
  9.  *      $content="<img alt="" src="../image/20121025/20121025105514_1093.jpg" />"; 
  10.  *      // {"content":"<img alt="" src="../image/20121025/20121025105514_1093.jpg" />"} 
  11.  *      echo json_encode(array("content"=>$content)); 
  12.  *  (3)第三种情况,内容中既有双引号,又有单引号的情况: 
  13.  *      $content=htmlspecialchars($content);//把一些预定义的字符转换为HTML实体 
  14.  *      $json_arr = json_encode(array("content"=>$content));//将数组json化为字符串 
  15.  *      $arr = json_decode($json_arr,true);//将json串反json化为数组 
  16.  *      $arr["content"]=htmlspecialchars_decode($arr["content"]);//把一些预定义的HTML实体转换为字符显示到网页中 
  17.  *       
  18.  */  

[php] view plain copy  print?
  1. /** 
  2.  * 第13题:addslashes()与 htmlspecialchars() 区别 
  3.  * 
  4.  * 区别: 
  5.  
  6.  *   (1)addslashes()函数主要在指定的预定义字符前添加反斜杠,这些预定义字符主要包括: 
  7.  * 
  8.  *      单引号 (") 
  9.  *      双引号 (") 
  10.  *      反斜杠 () 
  11.  *      NULL 
  12.  * 
  13.  *      addslashes()函数的主要作用是保证这些预定义字符能够正确入库,仅此而已 
  14.  * 
  15.  * 
  16.  * (2)htmlspecialchars()函数把一些预定义的字符转换为HTML实体,这些预定义字符主要包括: 
  17.  * 
  18.  *       
  19.  *      & (和号)      成为 &amp; 
  20.  *      " (双引号)     成为 &quot; 
  21.  *      " (单引号)     成为 &#039; 
  22.  *      < (小于)       成为 &lt; 
  23.  *      > (大于)       成为 &gt; 
  24.  * 
  25.  *      echo htmlspecialchars($str, ENT_COMPAT);  //默认,仅编码双引号 
  26.  *      echo htmlspecialchars($str, ENT_QUOTES);  //编码双引号和单引号 
  27.  *      echo htmlspecialchars($str, ENT_NOQUOTES);//不编码任何引号 
  28.  * 
  29.  */  
[php] view plain copy  print?
  1. /** 
  2.  * 第14题:如何去除数组中重复的值?使用数组函数 array_unique() 可以做到 
  3.  * 案例结果: 
  4.  *     Array( 
  5.  *          [0] => 8535455928182811 
  6.  *          [1] => 1558999140182811 
  7.  *          [3] => 5795844841182811 
  8.  *     ) 
  9.  */  
  10.   
  11.  $arr=array(  
  12.       "8535455928182811",  
  13.       "1558999140182811",  
  14.       "1558999140182811",  
  15.       "5795844841182811",  
  16.       "5795844841182811",  
  17.  );  
  18.   
  19.  $ordersn_arr=array_unique($arr);  
  20.  echo "<pre>";print_r($ordersn_arr);exit;  
[php] view plain copy  print?
  1. /* 
  2. * 第15题:说一说自己对$GLOBALS全局变量和global关键字的理解?   
  3. * (1)、输出$GLOBALS全局变量: 
  4. *  
  5. *    echo "<pre>";print_r($GLOBALS); 
  6. *  
  7. *    结果: 
  8. *    Array 
  9. *       ( 
  10. *           [GLOBALS] => Array 
  11. *              *RECURSION* 
  12. *           [_POST] => Array 
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。