设置默认时区:中国
date_default_timezone_set(‘PRC’);
输出IP
客户端 getenv(‘REMOTE_ADDR’); 服务器端 getenv(‘SERVER_ADDR’);
http协议中的post和get有何区别
GET用于获取信息,不应该用于修改信息,pOST可用于更新修改信息。
GET可传输数据大小和URL有关位2048B,而pOST没有限定大小,大小和服务器配置有关。
GET放在URL中,因此不安全,而pOST传输数据对于用户来说是不可见的,所以相对安全。
在ajax: post不被缓存,get被缓存所以一般在请求结尾加Math.random();
SERVER端接受:因为在submit提交的时候是按不同方式进行编码的,所以服务端在接受的时候会按照不同的方式进行接受!
编码方式:如果传递数据是非-ASCII,那么GET一般是不适应的,所以在传递的时候会做编码处理!
error_reporting(2047)什么作用?
答案:相当于 error_reporting(‘E_ALL’); 输出所有的错误
线程与进程的区别
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:
简而言之,一个程序至少有一个进程,一个进程至少有一个线程。
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
于大流量的网站,您采用什么样的方法来解决访问量问题
首先,确认服务器硬件是否足够支持当前的流量
其次,优化数据库访问。
第三,禁止外部的盗链。
第四,控制大文件的下载。
第五,使用不同主机分流主要流量
第六,使用流量分析统计软件。
第七,建立缓存服务器。
第八,负载均衡。
cookie、session的联系和区别,多台web服务器如何共享session?
cookie在客户端保存状态,session在服务器端保存状态。但是由于在服务器端保存状态的时候,在客户端也需要一个标识,所以session也可能要借助cookie来实现保存标识位的作用。
cookie包括名字,值,域,路径,过期时间。路径和域构成cookie的作用范围。cookie如果不设置过期时间,则这个cookie在浏览器进程 存在时有效,关闭时销毁。如果设置了过期时间,则cookie存储在本地硬盘上,在各浏览器进程间可以共享。
session存储在服务器端,服务器用一种散列表类型的结构存储信息。当一个连接建立的时候,服务器首先搜索有没有存储的session id,如果没有,则建立一个新的session,将session id返回给客户端,客户端可以选择使用cookie来存储session id。也可以用其他的方法,比如服务器端将session id附在URL上。
区别:
(1).cookie在本地,session在服务器端。
(2).cookie不安全,容易被欺骗,session相对安全。
(3).session在服务器端,访问多了会影响服务器性能。
(4). cookie有大小限制,为3K
多服务器共享session可以尝试将session存储在memcache中。
几个比较容易出错的程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
echo count(“abc”); //输出:1 $s = 'abc'; if ($s==0){ echo "is zero"; }else{ echo "is not zero"; } /*因为 pHp 是一门弱类型的语言,它对变量没有“必须先定义再使用”的强制要求,变量的类型也是根据赋值的类型来灵活变化的。这一“灵活性”看似灵活,实际上埋下了错误的隐患。虽然 $s = ‘abc’; 语句定义了变量 $s 为字符串类型,但因为 if ($s==0)语句中,$s 是和数字型常量比较,所以 $s 这时被隐含的转换成了数字型变量,其值是 0,所以 $s==0 比较的结果就为真。*/ $str='cd'; $$str='hotdog'; //$cd $$str.='ok'; echo $cd; //hotdogok |
php中web上传文件的原理是什么,如何限制上传文件的大小?
is_uploaded_file()
和 move_uploaded_file()
$_FILES[‘userfile’][‘name’]——客户端机器文件的原名称
$_FILES[‘userfile’][‘type’]——文件的 MIME 类型
$_FILES[‘userfile’][‘size’]——已上传文件的大小,单位为字节
$_FILES[‘userfile’][‘tmp_name’]——文件被上传后在服务端储存的临时文件名
$_FILES[‘userfile’][‘error’]——和该文件上传相关的错误代码
设置:PHP上传文件默认大小为2M,设置上传大小的配置项是upload_max_filesize,post_max_size设置一次POST中PHP能接收的最大数据量,应该比upload_max_filesize大。
有mail.log的一个文档,内容为若干邮件地址,其中用’\n’将邮件地址分隔。要求从中挑选出sina.com的邮件地址(包括从文件读取、过滤到列印出来)。
1 2 3 4 5 6 7 8 |
$mail = file_get_contents('mail.log'); $pattern = "/\S+sina\.com/"; $rpattern = "/\\n/"; preg_filter($rpattern,"",$mail); if(preg_match_all($pattern,$mail,$matches)) { print_r($matches); } |
请写一个函数验证电子邮件的格式是否正确(要求使用正则)
1 2 3 4 5 6 7 8 9 |
function checkEmail($mail){ $reg = '/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/'; $rst = preg_match($reg , $mail); if($rst){ return TRUE; }else { return FALSE; } } |
来源
:
http://www.yjbys.com/bbs/373648.html
http://www.yjbys.com/bbs/373635.html