<?php
/*
PHP开发网站技巧:
1.由于在PHP中我们可以灵活的增加或者减少php支持的模块,所以我们在使用PHP之前,总是会首先确定某个模块是否被加载,比如,看看,GD图形模块是否被支持,可以用下面的代码
if(!function_exists('imagecreate')){
die("这个主机目前不支持GD图形模块");
}
同理,我们可以利用类似的代码来测试MSSQL,OCI等模块是否被支持
2.在字符串中把网址更改为超级链接
在网页中提交表单的时候,经常在提交的说明文本中会出现一些网址,比如个人主页等信息,如果在显示的时候,自动转换为超级链接,那将是很惬意的事情,就像word那样.
下面的代码帮您实现:
$string="链接爱你的我http://www.sina.com.cn 站点";
//注意:连接后需要有个空格或回车
$string = eregi_replace("http://([^ ,rn]*)","<a href={CONTENT} tarrget=_blank>{CONTENT}</a>",$string);
$string = eregi_replace("ftp://([^ ,rn]*)","<a href={CONTENT} target=_blank>{CONTENT}</a>",$string);
print $string;
在本机上测试的时候,木有效果.!
3.用PHP处理多个同名复选框
如果一个表单中有多个同名复选框,在提交到PHP的时候却只有一个值,并不像asp用;来用一串逗号来进行分割.解决的方法是利用数组,将复选框的name后面加上[].这样PHP得到一个矩阵.在提交的表单中先用count函数来判断数组的个数,然后对数组进行分别处理即可
4.利用static来实现表格的颜色隔行显示
让表格的行行之间具有不同的颜色:
function getcolor(){
static $colorvalue;//定义一个静态变量
if($colorvalue=="#eeeeee")
$colorvalue="$F5F5F5";
else $colorvalue="#eeeeee";
return ($colorvalue);
}
print("<table border=1>n");//下面输出10行
for($i=0;$i<10;$i++){
$bcolor=getcolor();//换背景颜色
print("<tr bgcolor=$bgcolor>n");
print("<td>$i</td>n");
print("</tr>");
}
print("</table>n");
定义了一个静态变量static $colorvalue意思是在函数调用结束后,此变量$colorvalue还保留值,没有消失.当再次调用getcolor()函数的时候,变量$colorvalue的值是上次$colorvalue的值
5.在PHP中避免重复引用的方法
在C中,使用#define来定义MACRD名字,通过检查是否该MARCORD名字定义过来决定该头文件是否被引用.在PHP中也有同样的问题.比如A引用了B,B引用了C,如果不采取措施,C将被引用了2次.这样会导致一些奇怪的问题.
解决的方法:定义一个全局变量,并且通过检查该变量是否定义过来解决这个问题,办法很简单,类似C.只是这个全局变量我建议都用['user_packages']['headfilename']的命名规则.
if(empty($GLOBALS['FOODTAILS']['GLOBALDEFINE'])) return;
$GLOBALS['FOOTTAILS']['GLOBALDEFINE']=true;
class FOODTAILS{
}
另外主程序中,可以使用require_once来避免重复的引用.
6.如何避免表单的重复提交?
首先定义一个session变量来保存表单的提交序列号.这里我定义$userLastAction.然后在菜单中加入一个hidden变量,把$userLastAction+1:>最后在处理提交之前判断表单是否已经被提交过了
if($lastAction > $userLastAction){
$userLastAction++;//序列号加上1
}
但是这个方法还是不能避免ctrl+c/ctrl+v的灌水方法
7.下载文件的下载次数回填
我们在下载文件的时候,经常看到这个软件的统计次数.
实现原理:在后天数据库存放唯一标识符和下载数
当用户在下载的时候,首先更新对应软件的下载次数即下载次数加1,然后再到下载文件上正式开始下载.
download表
id 下载文件的唯一标识符
downnum 下载次数,默认为0
8.
?>
转载于:https://www.cnblogs.com/sgsheg/archive/2012/09/22/2698302.html