php备注信息2

<?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.



















    
?>

posted @ 2012-09-22 18:47  sgsheg  阅读(182)  评论(0编辑  收藏  举报