[PHP] 字符串相关面试题整理(威武的燕十八老师的视频的 课后作业) 2013-05-28

时间:2022-02-03 21:56:10

题目:1  使用五种以上方式获取一个文件的扩展名

  要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,

  必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name),

 

答:

  方法1:

1 $str = 'dir/upload.image.jpg'; 2 function get_ext1($str ){ 3      return end(explode('.',$str));  //把目标字符串按照'.'做分隔符,分割成数组,输出最后一个数组
4 }

   方法2:

1 function get_ext2($str){ 2     return strrchr($str,'.');  //最后一次出现点号的位置
3 }

   方法3:

1 function get_ext3($file) 2 { 3     return substr($file, strrpos($file, '.'));//反着找到第一个.的位置,然后输出该位置之后的字符串.
4 }

   方法4:

1 function get_ext4($file) 2 { 3     return pathinfo($file, PATHINFO_EXTENSION);//用系统函数pathinfo 直接调用参数扩展名,据说是最好的方法
4 }

   方法5:

1 function get_ext5($file_name) 2 { 3         return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.'))); 4 }

 

 题目:2 strlen( )与mb_strlen( )的作用分别是什么?

 答:

  1. strlen(string ) 计算字符串 的  字节数(byte).

    GBK中 一个中文字符,2字节(byte),

    UTF-8中 一个中文字符,3字节(byte),

  2. mb_strlen(string, 字符集) 计算的是字符个数。

  

  3. 验证

    

1 <?php 2 /*
3 strlen()与mb_strlen的作用分别是什么 4 */
5 $abc="金零壹a"; 6 echo 'UTF-8下 字符串 “金零壹a” 的strlen值是:',strlen($abc),'<br>';//输出10
7 echo 'UTF-8下 字符串 “金零壹a” 的mb_strlen值是:',mb_strlen($abc,'utf8');//输出4
8 
9 ?>

 

 题目:3 字符串和数组怎么取长度?

  答:

1 字符串:strlen(); // 计算字符串的字节长度,
2 mb_strlen   //计算字符长度
3 例:mb_strlen('hello 中国','utf-8'); //8
4 count() -- 计算数组中的元素个数。

 

 

题目:4 “===”是什么?试举一个“==”是真但“===”是假的例子。

 

 1 echo 'false==0',false==0?'等于':'不等于' ,'<br>'; // 等于
 2 echo 'false===0',false===0?"等于":'不等于' ,'<br>'; //不等于
 3 echo 'false===false',false===false?"等于":'不等于' ,'<br>'; //等于
 4 
 5 
 6 $str = 'abcdef';  7 echo 'abcdef 中 z',stripos($str,'z')!==false?'有':'没有','<br>';//没有  8 echo 'abcdef 中 e',stripos($str,'e')!==false?'有':'没有','<br>';//有  9 echo 'abcdef 中 a',stripos($str,'a')!==false?'有':'没有','<br>';//有 10 
11 
12 echo 'abcdef 中 z',stripos($str,'z')!=false?'有':'没有','<br>';//没有 13 echo 'abcdef 中 e',stripos($str,'e')!=false?'有':'没有','<br>';//有 14 echo 'abcdef 中 a',stripos($str,'a')!=false?'有':'没有','<br>';//没有

 题目:5 $a = 'abcdef'; 请取出$a的值并打印出第一个字母

1 echo $a{0};  //或者
2 echo substr($a,0,1);

 题目:6 2,求当前日期之后的第一个星期日的日期;

$c = (7 - date('w'))*3600*24; echo  date('Y-m-d',(time() + $c));