title php 面试题,PHP经典面试题汇总(四)

三十九·请使用 php编写程序,读取出www.baidu.com的首页的网页内容,并存入字符串$str?

方法一:$url ="http://www.baidu.com";

$str = file_get_contents($url);

echo $str;

方法二:$fp = fopen("http://www.baidu.com",'r');

$str = '';

while(!feof($fp)){

echo $str.=fread($fp,'1024');

}

请用php将上题中读出来的网页内容的

标签的值解析出来?header("Content-type:text/html;charset=utf-8");

$url ="http://www.baidu.com";

$str = file_get_contents($url);

preg_match('/

(.+)/',$str,$ms);

echo $ms[1];

四十·通过php函数循环遍历出文件夹下的所有目录的文件,写出程序?$dir = "zt";

function dirList($dir){

$arr = scandir($dir);

foreach($arr as $file){

if($file !='.' && $file !='..'){

$path = $dir."/".$file;

if(is_dir($path)){

dirList($path);

}else{

echo "

{$path}

";

}

}

}

}

dirList($dir);

四十一·linux打印出一个文件夹下的所有目录和文件,编写shell脚本?vi tree.sh

#! /bin/bash

tree

chomd 777 tree.sh

四十二·什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么?

数据库索引就相当于一本书的目录,就是给数据库中的每张表建立索引,便于检索提高select 效率,加快搜索速度

主键索引就是给每张表的主键设置索引,

唯一索引就是给每张表的唯一值字段设置索引,

主键索引本身就内置唯一索引,

一旦在列里加唯一索引,列里的值就不能重复,

主键索引在检索中比唯一索引快,

一个表只能有一个主键索引,一个表可以有多个唯一索引,

索引的缺点是建立索引需要增加存储空间,空间利用率低,并且数据发生变化时会改变索引资源消耗较大。

四十三·数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案是?

1·查询速度慢,避免全盘扫描,因为全盘扫描会导致大量的磁盘I/O操作,用sphinx来解决,和添加索引。

2·读写过于频繁,使用读写分离操作。

3·数据库压力大,采用分布式数据库负载均衡来解决。

4·memcache缓存。

5·链接数据库使用pdo,或者mysqli,预处理缓存字段。

6·尽量使用MyISAM。

7·建议表的列不要过多,要适当的多用些表。

四十四·通过js实现页面的前进和后退操作?前进

后退

四十五·浏览器ie和非ie浏览器的区分,区别是什么?

var val = navigator.userAgent;

if(val.search('MSIE')>=0){

alert('ie浏览器');

}else{

alert('非ie浏览器');

}

四十六·设定网站的用户数量在千万级,但是活跃用户的数量只有1%,如何通过优化数据库提高活跃用户的访问速度?

1·分区。(分活跃用户表和非活跃用户表)

2·分表。(人为分表,需要在php写一段路由层,判断是活跃用户,或者非活跃用户)

3·索引优化

四十七·ajax技术利用了什么协议,简述一下ajax的工作机制?

利用http协议

工作原理:

1·先通过浏览器内置的XMLHttpRequest类产生一个ajax对象,

2·调用ajax对象open方法建立一个与某一个脚本发生通讯的链接

3·设定好传输方式get/post,还要确定是异步还是同步,默认是异步

4·调用ajax的send方法发送请求,发起对php文件的请求

5·通过给ajax绑定状态检测事件,当状态码为4,并且服务器响应码为200时则获取php文件的响应数据。

function showHint(str)

{

var xmlhttp;

if (str.length==0)

{

document.getElementById("txtHint").innerHTML="";

return;

}

if (window.XMLHttpRequest)

{

// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码

xmlhttp=new XMLHttpRequest();

}

else

{

// IE6, IE5 浏览器执行代码

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

}

}

xmlhttp.open("GET","/try/ajax/gethint.php?q="+str,true);

xmlhttp.send();

}

四十八·利用php打印出前一天的时间格式是2017-8-10 22:21:50?echo date('Y-n-d H:i:s',strtotime('-1 day'));

四十九·echo ,print ,print_r的区别是什么?

1·echo 和print是语言结构,print_r是函数

2·echo 可以有多个参数,print,print_r只能有一个参数

3·print()只能打印简单的数据类型变量的值(int ,string)

print_r()可以打印出复杂类型变量的值(数组,对象)

echo 可以输出一个或者多个字符串

五十·能够使html和php分离开使用的模板引擎?

Smarty,template,thinkphp,laravel,yii

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值