最新消息:

PHP面试题—第五回

PHP huayuguoji 87浏览 0评论

1.用PHP打印出前一天的时间,格式是2012-5-10 22:21:21?

<?php

echo date(“Y-m-d H:i:s”,strtotime(“-1 day”));

?>

2、MySQL取得当前时间的函数,格式化日期的函数?

取得当前时间用 now()

数据库中格式化时间 用DATE_FORMA T(date, format)

3、如何修改session的生存时间?

$lifetime = 3600; //一个小时

session_set_cookie_params($lifetime);

session_start();

4.用PHP写出显示客户端与服务器端IP的代码?

echo ‘服务器IP:’,$_SERVER[‘SERVER_ADDR’];

echo ‘客户端IP:’,$_SERVER[‘REMOTE_ADDR’];

5.创建新闻发布系统

Message表(文章表)

文章 id 文章标题 文章内容 文章分类 点击量

id title content category_id hits

comment表(记录用户对文章回复内容)

回复id 文章id,关联message表中的id 回复内容

comment_id id comment_content

1、现通过查询数据库需要得到一下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面 文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0。

create database xinwen character set utf8;

use xinwen;

#文章表

create table message(

id int auto_increment primary key,

title varchar(20),

content varchar(100),

category_id int,

hits varchar(20)

);

insert into message values(‘ ‘,’ 标题1′,’内容1′,1,1);

insert into message values(‘ ‘,’ 标题2′,’内容2′,1,2);

insert into message values(‘ ‘,’ 标题3′,’内容3′,1,3);

insert into message values(‘ ‘,’ 标题4′,’内容4′,1,4);

insert into message values(‘ ‘,’ 标题5′,’内容5′,1,5);

insert into message values(‘ ‘,’ 标题6′,’内容6′,1,6);

insert into message values(‘ ‘,’ 标题7′,’内容7′,1,7);

insert into message values(‘ ‘,’ 标题8′,’内容8′,1,8);

insert into message values(‘ ‘,’ 标题9′,’内容9′,1,9);

insert into message values(‘ ‘,’ 标题10′,’内容10′,1,10);

insert into message values(‘ ‘,’ 标题11′,’内容11′,1,11);

insert into message values(‘ ‘,’ 标题12′,’内容12′,1 ,12);

insert into message values(‘ ‘,’ 标题13′,’内容13′,1,13);

#回复表

create table comment (

comment_id int auto_increment primary key,

id int references message(id),

comment_content varchar(100)

);

insert into comment values(‘ ‘,1,’ 回复内容1′);

insert into comment values(‘ ‘,2,’ 回复内容2′);

insert into comment values(‘ ‘,3,’ 回复内容3′);

insert into comment values(‘ ‘,4,’ 回复内容4′);

insert into comment values(‘ ‘,5,’ 回复内容5′);

insert into comment values(‘ ‘,6,’ 回复内容6′);

insert into comment values(‘ ‘,7,’ 回复内容7′);

insert into comment values(‘ ‘,8,’ 回复内容8′);

insert into comment values(‘ ‘,1,’ 回复内容9′);

insert into comment values(‘ ‘,1,’ 回复内容10′);

insert into comment values(‘ ‘,1,’ 回复内容11′);

insert into comment values(‘ ‘,1,’ 回复内容12′);

insert into comment values(‘ ‘,1,’ 回复内容13′);

insert into comment values(‘ ‘,1,’ 回复内容14′);

insert into comment values(‘ ‘,5,’ 回复内容9′);

insert into comment values(‘ ‘,5,’ 回复内容10′);

insert into comment values(‘ ‘,5,’ 回复内容11′);

insert into comment values(‘ ‘,13,’ 回复内容12′);

insert into comment values(‘ ‘,13,’ 回复内容13′);

insert into comment values(‘ ‘,13,’ 回复内容14′);

现通过查询数据库需要得到一下格式的文章标题列表,

并按照回复数量排序,回复最高的排在最前面

文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0。

select a.id 文章id,

a.title 文章标题,

a.hits 点击量,

count(b.id) 回复数量

from

message a left join comment b on a.id = b.id

group by a.id

order by count(b.id) desc;

+———-+————–+———–+————–+

| 文章id | 文章标题 | 点击量 | 回复数量 |

+———-+————–+———–+————–+

| 1 | 标题1 | 1 | 7 |

| 5 | 标题5 | 5 | 4 |

| 13 | 标题13 | 13 | 3 |

| 6 | 标题6 | 6 | 1 |

| 8 | 标题8 | 8 | 1 |

| 3 | 标题3 | 3 | 1 |

| 7 | 标题7 | 7 | 1 |

| 2 | 标题2 | 2 | 1 |

| 4 | 标题4 | 4 | 1 |

| 9 | 标题9 | 9 | 0 |

| 11 | 标题11 | 11 | 0 |

| 10 | 标题10 | 10 | 0 |

| 12 | 标题12 | 12 | 0 |

+———-+————–+———–+————–+

6、一个100W数据(MYSQL)的网站,目前访问速度慢,如果让你优化,你会从哪些方面进行考虑,谈谈你的思路?

1、select *把星号改成需要的字段,经测试,如果字段越多或字段的内容越多,那么查询速度是翻倍增长的。

或者可以把其他的字段单独放到1张表中,不要放在一起,导致单个表内容非常大,导致查询慢。

2、根据需求分析,正常用户只会看前几个页面内容,最多100页就很不错了,所以 100页*100条=1W条。也就是说用户只需要1W条信息。

可以优化limit值,limit 10000,10速度是很快的。

7、实现多重筛选条件(如图),谈谈你的设计思路,URL要求形如a1/b3/c4/d1

多条件使用hidden域来储存,ajax异步提交到后端地址,然后由后端返回筛选后的json数据给前端

PHP面试题—第五回

8、php中过滤HTML的函数是什么?经常用在哪些地方?

Strip_tags()

strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。

9、已知任意一个合法的日期,如何算出那一天所在的星期的周一是几月几号?

<meta charset=”utf-8″>

<?php

date_default_timezone_set(‘PRC’);

function zhuanhuan($strtime){

$time=strtotime($strtime);

$xingqi=date(‘w’,$time);

switch($xingqi){

case 0:

echo date(“Y-m-d”,$time-3600*24*6);

break;

case 1:

echo date(“Y-m-d”,$time);

break;

case 2:

echo date(“Y-m-d”,$time-3600*24);

break;

case 3:

echo date(“Y-m-d”,$time-3600*24*2);

break;

case 4:

echo date(“Y-m-d”,$time-3600*24*3);

break;

case 5:

echo date(“Y-m-d”,$time-3600*24*4);

break;

case 6:

echo date(“Y-m-d”,$time-3600*24*5);

break;

case 6:

echo date(“Y-m-d”,$time-3600*24*6);

break;

default:

echo “呵呵”;

}

}

zhuanhuan(“2017-01-06”);

//代码输出结果:2017-01-02

转载请注明:PHP学习 » PHP面试题—第五回

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址