php基础篇之一
1.PHP是什么
官方文档:超文本预处理器
2.PHP能够做一些什么?
PHP主要应用在一下领域:
(1)服务器端脚本,需要:PHP解析器,PHP服务器,PHP浏览器。
(2)命令行脚本,只需要PHP解析器,但是依赖于cron(Linux/Unix环境)和task scheduler(Windows环境)。
(3)编写桌面应用程序,依赖于PHP-GTK扩展。
3.FastCGI与CGI的区别?
FastCGI与CGI都是“进程管理器”。
CGI是之前使用到的处理动态请求的一种方法。当web服务器接收到动态请求的时候,web服务器就会fork一个新的进程,这个新的进程在处理完动态请求之后将数据交给用 户,此时新的进程就会退出。
FastCGI是现在使用到的处理动态请求的一直能够方法,web服务器中内置php/per解析器,当web服务器启动时就会启动解析器。当文本服务器接收到动态请求之后,就会把请求提交给解析器,并且请求处理完毕之后,解析器也不会退出进程。
4.mysql中事物是什么?
事物指的是一组有序的数据库操作单元。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,只有所有操作全部成功,具有:原子性,一致性,隔离性,持久性。
原子性: 确保工作单元内的所有操作都成功完成,否则事务将被中止在故障点,和以前的操作将回滚到以前的状态。
一致性: 确保数据库正确地改变状态后,成功提交的事务。
隔离性: 使事务操作彼此独立的和透明的。
持久性: 确保提交的事务的结果或效果的系统出现故障的情况下仍然存在。
5.Cookie与Session的区别?
(1)cookie只保存在客户端的,而session是保存在服务器端的。
(2)相对于cookie而言,session更加安全。
(3)cookie保存的数据量有限,一般是4k。
(4)如果session保存的数据量过大,就会影响到服务器的性能,所以一般建议:登录等敏感信息保存在session,而cookie则保存一些其他信息。
6.strlen()与mb_strlen()的区别
首先对于单字节编码的字符串而言,strlen()与mb_strlen()没有区别,都是计算字符串的长度;但是对于多字节编码的字符(如gbk和utf8),只有mb_strlen()计算的是字符串长度,而strlen()则计算的是字符串的总字节数。比如:
$str1 = "abc";
echo strlen($str1); //输出:3
echo mb_strlen($str1); //输出:3
而对于:
$str2 = "张大亮PHP";
echo strlen($str2); //输出:6x2 = 12;当前页面是utf是12;如果是gbk那么就是3x2 + 3x1 = 9;
echo mb_strlen($str2); //输出:6x2 = 12;如果没有指定字符街编码就是用内部单字节编码。
echo mb_strlen($str2, 'utf-8');//输出:6