理论面试题(二)

理论面试题(二)
	PHP读取文件内容的方法或函数
		fopen 函数将创建与文件的连接。
		feof 命令将检测您是否已经读到文件的末尾并返回 True 或 False。
		fgets 函数它将从文件中提取一行数据并将其作为字符串返回。
		fread 函数它趋于从二进制文件中读取信息。
	写出至少五种常用的PHP数组函数
		函数array_values()作用是返回数组中所有元素的值。
		函数array_keys()的作用是返回数组中所有的键名。
		函数in_array()的作用是检查数组中是否存在某个值
		函数array_sum()的作用是返回数组中所有值的总和
		函数array_key_exists()的作用是判断某个数组中是否存在指定的key
		函数array_merge()的作用是将两个数组连接合并在一起
		函数array_push()的作用向数组添加一个元素
	写出至少五种常用的str函数
		trim() 删除字串两端的空格
		str_shuffle() 随机打乱字符串
		strtolower() 字符串转为小写
		str_replace() 字符串替换操作
		strlen() 统计字符串长度
		strstr() 查找字符串的首次出现位置
	PHP对大小写敏感问题
		 变量名区分大小写
		常量名默认区分大小写,通常都写为大写
		函数名、方法名、类名不区分大小写
		魔术常量不区分大小写,推荐大写
		NULL、TRUE、FALSE不区分大小写
	PHP跳出循环的几种写法
		continue控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。
		break他的作用是跳出当前的语法结构,
		goto的作用是将程序的执行从当前位置跳转到其他任意位置
		exit和die是用来结束程序执行的。
		return语句是用来结束一段代码,并返回一个参数的。
	PHP如何实现类似多继承方式
		trait
	trait是php5.4之后添加的新特性,就是为了解决多继承的问题。
	定义的方法和类的定义一样,只是关键词不一样,类是class 而它是trait
	作用:解决多继承,让代码更佳简洁。
	禁用cookie的时候,session还可以用吗?怎么使用
		使用url重定向方法,在每个要使用session的页面的链接中都加上sessionid,然后在每个页面中都去请求这一份session文件就可以解决问题。
		if(isset($_GET['PHPSESSIONID'])){
        session_id($_GET['PHPSESSIONID']);
    }
    session_start();
    $sid = session_id();
	jQuery中,哪些函数是dom操作,试写出
		Dom之引用当前整个网页文档:document 
Dom如何快速在网页中查找某一元素:getElementById 
Dom中查找一组标签,具有相同名称的标签元素:getElementsByTagName 
根据标签的Id属性值或name属性来查找多个元素:getElementsByName 
在网页中的创建一个标签元素:createElement 
创建一段文本内容:createTextNode 
向网页中添加元素:appendChild 
删除元素的Dom方法是:removeChild 
修改网页中标签元素的属性:setAttribute 
替换已存在的标签或元素:replaceChild 
复制克隆已存在的标签或元素:cloneNode 
获取和修改元素内的html标签与文本内容:innerHTML 
获取或修改元素的文本内容,仅支持IE:innerText 
获取或修改元素的文本内容,支持FF:textContent 
获取父元素的指令是:parentNode 
获取元素中第一个子元素:firstChild 
获取元素中最后面的那个子元素:lastChild 
	$this和$self和$prent的区别
		$this指向当前的对象,但是无法指向静态变量和静态方法。
		self指向类本身,主要用来调用静态方法和静态变量。
		parent指向父类。
	MySQL中varchar与char区别
		char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。
		varchar可变长度,可以设置最大长度;适合用在长度可变的属性。
		查询速度: char最快, varchar次之
	src和href的区别
		图片的src主动的发送http请求
		a 链接的href被动的发送http请求
	js中网页前进和后退的代码
		前进: history.forward();=history.go(1);
		后退: history.back();=history.go(-1); 
	简述同源策略,以及如何在ajax方法实现跨域请求
		同源政策
			协议相同(http,https)
			域名相同
			端口相同(默认80端口)
		CORS方式实现跨域请求
			需要在被请求页面添加header("Access-Controller-Allow-Origin:允许网站的域名")
				IE9+支持
		使用JSONP技术实现跨域请求
			使用带src的标签直接请求,目标网站返回的必须是js格式的数据
	如何修改session的生存时间
		php.ini:session.gc_maxlifetime = 1440
		session_set_cookie_params(24 * 3600);
session_start();
	如何实现一个严格的 30 分钟过期的会话?
		1. 设置Cookie过期时间30分钟, 并设置Session的lifetime也为30分钟.
		2. 自己为每一个Session值增加Time stamp.
		3. 每次访问之前, 判断时间戳.
	Apache与Nginx优缺点比较
		Nginx优点:
			1.高并发连接
2.内存消耗小
3.成本低廉
4.稳定性高
5.支持热部署
		Apache优点:
			1、rewrite,比nginx 的rewrite 强大
			2、模块超多,基本想到的都可以找到
			3、少bug,nginx的bug相对较多
			4、运行超稳定
			5、Apache对PHP支持比较简单,Nginx需要配合其他后端用
			6、Apache在处理动态有优势
	提高页面加载速度,有哪些可以优化的点。
		减少HTTP请求
		将样式表放在头部
		将脚本放在底部
		使用外部的JavaScript和CSS
		精简代码
		删除重复脚本
	试写出无限子分类的数据库如何设计(至少两种)
		表为两张,一张分类表,一张信息表。 
表1: 
`ID` int(10), 
`cID` tinyint(3) , 
`title` varchar(255), 
表2:
`cID` tinyint(3) , 
`parentID` tinyint(3),  
`order` tinyint(3) , 
`name` varchar(255),
这样可以根据cID = parentID来判断上一级内容,运用递归至最顶层 。
	防止SQL注入漏洞可以用那些函数
		 trim ( string $str [, string $charlist = " \t\n\r\0\x0B" ] )
去除字符串首尾处的空白字符(或者其他字符)
		strip_tags ( string $str [, string $allowable_tags ] )
从字符串中去除 HTML 和 PHP 标记
		addslashes( string $str)
使用反斜线引用字符串
	mysql中left join ,right join,inner join的特点和用法
		inner join内连接:表1 [inner] join 表2  on 匹配条件;内连接通常是在对数据有精确要求的地方使用:必须保证两种表中都能进行数据匹配。从一张表中取出所有的记录去另外一张表中匹配。利用匹配条件进行匹配,成功了则保留,失败了放弃。为了避免重名出现错误,通常使用表名.字段名,来确保唯一性
		outer join外链接:左外连接(left join左表是主表),右外连接(right join右表是主表);外连接中主表数据记录一定会保存:连接之后不会出现记录数少于主表的情况(但内连接可能少);左连接和右连接其实可以互相转换,但是数据对应的位置(表顺序)会改变。
		左连接:主表 left join 从表 on 连接条件;  -- 外连接必须有on条件
		右连接:从表 right join 主表 on连接条件;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值