分类 "Php" 的存档.

PHP面试基础题

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

答:get用户端将数据加到URL后,格式为”?字段1=输入数据1&字段2=输入数据2&…”。

由于get提交参数后会在地址栏中显示出来,所以会产生严重的安全问题。

get传输的数据量小,get传输的数据量小,这主要是因为受url长度限制;而post可以传输大量的数据。

get限制表单中数据集的范围为asc2码,而post可以支持整个iso10646字符集。

2.session与cookie的区别?

Read more…

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

首先,确认服务器硬件是否足够支持当前的流量。

其次,优化数据库访问。

第三,禁止外部的盗链。

第四,控制大文件的下载。

第五,负载均衡,使用不同主机分流主要流量。

第六,使用流量分析统计软件,针对问题做进一步的优化。

Read more…

什么是XML-RPC?

什么是XML-RPC?

XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。

XML-RPC透过向装置了这个协定的服务器发出HTTP请求。发出请求的用户端一般都是需要向远端系统要求呼叫的软件。

它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。

这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。

Read more…

在windows下iis与apache共存80端口!通过各自的域名分别访问,不用加端口号(虚拟主机+代理)

一:环境说明:

1、apache 对php支持很好,iis对php支持也不错。但是apache对asp支持(除非装一个低效率的asp插件)很差劲。
2、iis对虽然能同时支持asp/php,但对于现在流行的urlrewrite 也就是静态网址就不如apache 的url重写效率高。虽然iis能装个rewrite插件(也是低效率),但不支持iis上的虚拟主机的url重写,只能对根网站、或者默认网站支持。apache的杀手锏就是支持虚拟主机的.htaccess 。所以apache的虚拟主机就可以随意支持url重写了。

Read more…

PHP mysql_fetch_assoc() 函数

定义和用法

mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。不再包含数字索引

返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

语法

mysql_fetch_assoc(data)参数 描述

data 必需。要使用的数据指针。该数据指针是从 mysql_query() 返回的结果。

提示和注释

Read more…

Invalid command ‘RewriteEngine’错误的解决办法

今天部署一个PHP程序的时候,运行错误,看了下apache log,出现了如下的错误:

Invalid command ‘RewriteEngine’, perhaps mis-spelled or defined by a module not included in the server configuration

解决办法:

打开httpd.conf ,取消 LoadModule rewrite_module modules/mod_rewrite.so前的注释

PHP 判断FORM来的POST数据是否为整数,转化成整数

is_int()函数对于FORM过来的POST数据是不能判断是否为整数的,因为FORM过来的是字符串。

但是用is_numeric可以判断是否为数字类型,只要再动懂脑子就可以用个偷巧的办法,判断是不是整数了。

if(!is_numeric($postn)||strpos($postn,”.”)!==false){
echo “不是整数”;
}else{
echo “是整数”;
}

转化成整数:
使用一个函数即可:
intval()

php时区设置 time() 差8个小时解决办法

使用time()函数 取出来的时间总是和本地时间老差8个小时,但系统设置确实已经是中国标准时(GMT+8),经过google,找到了问题原因:

原来从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间 和我们的时间(北京时间)差了正好8个小时,有以下2种方法可以恢复正常的时间。

1、修改php.ini。打开php.ini查找 ;date.timezone = 去掉前面的分号= 后面加上你需要的时区名称,重启http服务(如apache2或iis等)即可.

2、如果不能修改php.ini,或者说你是在为别人做程序,那么他可能不会修改php.ini,这就需要自己麻烦一下,在需要在关于时间的初始化的语句的上面加上 date_default_timezone_set (时区名称);

常用的时区名称:

大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐)
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore

时区名称一定要设置对哦,设置的不是标准名称的话,会再次默认使用格林威治标准时间。

SSI—shtml静态页面include包含网页文件Apache开启SSI配置

shtml静态页面include包含网页文件,实现静态页面加载公共页面,如header,footer或者文章列表正文页右侧的最新、最热文章列表等。

什么是SSI技术?

SSI直译服务器端包含(Server Side Includes),由字面上看由WEB在服务器提供的一种功能,并且是在服务器端进行的。一般说来,要完成较复杂的任务(如:聊天室/留言本等),必须设计专门的CGI或ASP程序;但是如果只是想给网页加上简单的功能(如:显示一篇文档,web服务器环境变量,关于该文档的更新日期/大小等),则只要 SSI就可以完成了。SSI则是直接由服务器解释执行的,须要WEB服务器软件支持SSI。
而且,由于直接在服务器端执行SSI,产生相应HTML代码;所以对客户端没有限制,不会产生因为不同浏览器而产生不同的观看效果。

SSI有什么用?
目前,主要有以下几种用用途:
1、 显示服务器端环境变量<#echo>
2、 将文本内容直接插入到文档中<#include>
3、 显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
4、 直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
5、 设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
高级SSI可设置变量使用if条件语句。

Read more…