首页 > php开发, 技术学习 > php面试题

php面试题

1.有mail.log的一个文档,内容为若干邮件地址,其中用’\n’将邮件地址分隔。要求从中挑选出sina.com的邮件地址(包括从文件读取、过滤到列印出来)。
mail.log内容如下:
james@sina.com.cn
jack@163.com
zhansan@sohu.com
lisi@hotmail.com
wangwu@gmail.com
aaaa@sina.com
(如果是大公司,往往还告诉你,该log日志的大小1G,而能供你使用的内存只有500M,让你综合考虑速度,内存来完成该题)
答:第一种是:直接使用file_get_contents();
$info=file_get_contents(mail.log);
$list=explode(‘\n’,$info);
foreach($list as $v){
   if(substr($v,-9)==’@sina.com’){
             echo $v.’
‘;
   }
}
fclose($fp);

第二中是:使用fopen函数
$fp=fopen(‘mail.log’,’r’);
while(!fof($fp)){
    $line=fgets($fp);
    if(substr($line,-9)==’@sina.com’){
          echo $line.’
‘;
    }
}
fclose($fp);

上面两种方法的区别是file_get_contents()一次性将文件读入内存中处理,浪费内存,而第二种则是一行一行的读取,不会浪费内存

2.  sort():对数组按照值进行一个排序(按照英文字母的顺序进行排序)
    arsort():对数组进行逆向排序并保持索引关系
    ksort():对数组按照键值进行排序(按照的英文字母的顺序进行排序)
    krsort():对数组按照键值进行逆向排序

1.有mail.log的一个文档,内容为若干邮件地址,其中用’\n’将邮件地址分隔。要 […]

  1. 还没有评论
评论提交中, 请稍候...

留言

(Spamcheck Enabled)

Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks