第二十八套

1.表单中get与post提交方法的区别?

get在url通过?参数=值&参数=值…这样的方式明文传输,传送的数据量较小,不能大于2KB。get安全性非常低,但是执行效率却比Post方法好。
post传送的数据量较大,post安全性较高通过提交header头传输,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

2.Session 与cookie的区别?

Session存在服务器端,安全性高,但是禁止cookie后无法使用使用,除非使用url中?PHPSESSID = 值(在php端使用session_id()获得)
Cookie存在客户端,用户可以修改,不安全

3.数据库中的事务是什么?

事务是数据库的一种数据结构类型
执行环境:当执行一堆数据库语句操作(多为增删改操作)并且所有语句都能执行才将sql语句都执行,否则返回到数据库未做修改时的状态(称为回滚)
使用环境:一般使用在对金额的数据库操作时使用

4.实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。

$b = Array_reverse(Explode(“,”,“$a,$b”));
$a = $b[0];
$b = $b[1];

5.用php打印出前一天的时间格式是2006-5-10 22:21:21

Echo date(‘Y-n-d H:i:s’,strtotime(‘-1 day’))

6.使用哪些工具进行版本控制/

svn git

7.如何实现字符串翻转?

Strrev

header('content-type:text/html;charset=utf-8');
function getrev($str,$encoding='utf-8'){
    $length = mb_strlen($str);
    $result = '';
    for ($i=$length-1; $i >= 0 ; $i--) { 
            $result .= mb_substr($str,$i,1,$encoding);
    }
    return $result;
}
$str = 'OK的撒发生大幅';
echo getrev($str);

8.PHP的意思,它能干些什么?

PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。
PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

9.谈谈对mvc的认识?

MVC是一种设计模式中M是model模型,业务逻辑层
V是视图view 主要负责用户交互层
C是控制器 是连接视图和模型的桥梁
Mvc优点:
低耦合性
高重用性和可使用行
较低的生命周期成本
快速的部署
可维护性

10.GD库是做什么用的?

是php的一个扩展,主要用来做图像处理如:图片合并,验证码,图片截取等

11.数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么别?

Int 8字节整型,-231~231-1之间,无符号为0~232
Char 定长字符串
Varchar 变长字符串
Datatime 日期格式
Text 文本格式,可输入较长的文本
区别:vachar[n] 存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零
Char[n] 存储大小为 n 个字节的数据,无论输入数据字节大小

12.echo(),print(),print_r()的区别?

echo() 不是一个函数(它是一个语言结构),没有返回值,可以传递多个参数
print() 实际上不是一个函数(它是一个语言结构), 有返回值总是1
Print_r()是函数 print_r($exp,[bool]) 如果给出的是 string、integer或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。
object与数组类似。print_r() 将把数组的指针移到最后边。
使用 reset() 可让指针回到开始处。第二个参数设为 TRUE,print_r() 将不打印结果,而是返回其输出的字符串。

13.什么是模板技术、能够使HTML和PHP分离开使用的模板?

模板技术:提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要
常用的模板引擎有:Smarty

14.对于大流量的网站,您采用什么样的方法来解决访问量问题?

可以分为缓存和数据库索引的方式解决
缓存:将访问压力较大的页面或者数据库做内存或者文件缓存,减少数据库压力
数据库可以实现读写分离,写和读服务器可以根据具体情况1;N来进行配比
数据库可以把常用的搜索和关键条件的字段建立复合窄索引,提高数据库查询效率
减少子查询,通过慢查询和explain语句优化对应的sql语句
通过memcache调动服务器的空闲内存做文件或者数据库缓存
负载均衡,动静分离等

15.include和require的区别是什么?为避免多次包含同一文件可用什么代替它们?

Include遇到错误程序会继续往下执行,多使用在判断中的包含,require遇到错误会立即终止程序,一般指包含一次
Include_once,require_once

16.mysql_fetch_row() 和mysql_fetch_array之间有什么区别?

mysql_fetch_array — 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysql_fetch_row — 从结果集中取得一行作为枚举数组

17.优化MYSQL数据库的方法

1,允许部分数据冗余,避免JOIN操作,以提高查询效率
2,使用主从数据库分离,读写分离
3,explain每一个sql语句,写高效的SQL语句,看看有没有写低效的SQL语句,建立复合窄索引,减少子查询
4,所得皆必须,只从数据库取必需的数据,
5,必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度

18.实现中文字串截取无乱码的方法

Mb_substr()
或者

function gbsubstr($string,$start,$len){ 
    if(len($string)>$len){ 
        $newlen = $start+$len;
    for($i=$start;$i< newlen;$i++){   
        if(ord(substr($string,$i,1))>0xa0){  
            $str.=substr($string,$i,2);  
        }else{  
            $str.=substr($string,$i,1); 
        }   
    }   
    return $str;  
    }else{ 
        return $string; 
    } 
}

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

$_SERVER[‘SERVER_ADDR’] 当前运行脚本所在的服务器的 IP 地址
$_SERVER[‘REMOTE_ADDR’] 浏览当前页面的用户的 IP 地址

20.有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?


21.请说明php中传值与传引用的区别。什么时候传值什么时候传引用?

传值:是把实参的值赋值给形参,那么对形参的修改,不会影响实参的值
传引用:真正的以地址的方式传递参数
传递以后,形参和实参都是同一个对象,只是他们名字不同而已
对形参的修改将影响实参的值
传入函数中的变量执行后需要让该变量的值等于传入形参的改变的值时传引用

22.请写一个函数验证电子邮件的格式是否正确

Preg_match(‘/\s*\w+@(\w+\.){1,}\w+\s*/’,$content,$match)

23.简述如何得到当前执行脚本路径,包括所得到参数

scrip_path = basename(__file__); print_r($script_path);

24.JS表单弹出对话框函数是?获得输入焦点函数是?

confirm()
alert()
prompt()
onfocus()

25.写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

Function Suffix($url){
$str = pathinfo($url,PATHINFO_EXTENSION);
Return substr($str,0,strpos($str,’?’));
}
也可以使用parse_url实现

27.写一个函数,算出两个文件的相对路径   

$a = ‘/a/b/c/d/e.php’;
$b = ‘/a/b/12/34/c.php’;  
计算出 $b 相对于 $a 的相对路径应该是 http://www.cnblogs.com/c/d将()添上

28.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

';
                    }else{
                        echo $path.'是一个文件夹
'; showDirAll($path); } } } } } showDirAll('D:/Apache/www');

29.简述论坛中无限分类的实现原理。
Id name pid path这几个字段
最外层的主类 pid为0
其他的分支pid则为0-n-n….的格式
而path为0-n-n-….-n最后一个为本身的id号
然后根据path的排序就可以实现无限分类

你可能感兴趣的:(PHP-面试题总集)