当前位置:  编程技术>php
本页文章导读:
    ▪php写的设置过滤及保留属性的类      php写的设置过滤及保留属性的类,有需要的朋友可以研究下。   代码如下: <?php /**   @ 设置及保留属性的类   @ class cleanHtml   @ link:www.   @ date:2013/2/28 */     function reg_escape( $str ).........
    ▪学习 mysql 格式化日期的函数 DATE_FORMAT,FROM_UNIXTIME,UNIX_TIME      1、DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。 DATE_FORMAT(date,format)  可以使用的格式有: 格式 描述 %a  缩写星期名 %b  缩写月名 %c  月,数值 %D  带有英文前缀的月中的天 %d .........
    ▪php加密与解密函数(不支持中文)      php加密与解密函数(不支持中文),有用到的朋友可以作个参考。   代码如下: <?php      /*     @名称:PHP加密/解密      @link:www.     @date:2013/2/28     */      function phpencode($c.........

[1]php写的设置过滤及保留属性的类
    来源: 互联网  发布时间: 2013-12-24

php写的设置过滤及保留属性的类,有需要的朋友可以研究下。
 

代码如下:
<?php
/**
  @ 设置及保留属性的类
  @ class cleanHtml
  @ link:www.
  @ date:2013/2/28
*/
    function reg_escape( $str ) 
    { 
        $conversions = array( "^" => "\^", "[" => "\[", "." => "\.", "$" => "\$", "{" => "\{", "*" => "\*", "(" => "\(", "\\" => "\\\\", "/" => "\/", "+" => "\+", ")" => "\)", "|" => "\|", "?" => "\?", "<" => "\<", ">" => "\>" ); 
        return strtr( $str, $conversions ); 
    } 
     
    /**
    * Strip attribute Class
    * Remove attributes from XML elements
    * @author David (semlabs.co.uk)
    * @version 0.2.1
    */ 
     
    class cleanHtml{         
        public $str         = ''; 
        public $allow       = array(); 
        public $exceptions  = array(); 
        public $ignore      = array(); 
         
        public function strip( $str ) 
        { 
            $this->str = $str; 
             
            if( is_string( $str ) && strlen( $str ) > 0 ) 
            { 
                $res = $this->findElements(); 
                if( is_string( $res ) ) 
                    return $res; 
                $nodes = $this->findAttributes( $res ); 
                $this->removeAttributes( $nodes ); 
            } 
             
            return $this->str; 
        } 
         
        private function findElements() 
        { 
             
            # Create an array of elements with attributes 
            $nodes = array(); 
            preg_match_all( "/<([^ !\/\>\n]+)([^>]*)>/i", $this->str, $elements ); 
            foreach( $elements[1] as $el_key => $element ) 
            { 
                if( $elements[2][$el_key] ) 
                { 
                    $literal = $elements[0][$el_key]; 
                    $element_name = $elements[1][$el_key]; 
                    $attributes = $elements[2][$el_key]; 
                    if( is_array( $this->ignore ) && !in_array( $element_name, $this->ignore ) ) 
                        $nodes[] = array( 'literal' => $literal, 'name' => $element_name, 'attributes' => $attributes ); 
                } 
            } 
             
            # Return the XML if there were no attributes to remove 
            if( !$nodes[0] ) 
                return $this->str; 
            else 
                return $nodes; 
        } 
         
        private function findAttributes( $nodes ) 
        { 
             
            # Extract attributes 
            foreach( $nodes as &$node ) 
            { 
                preg_match_all( "/([^ =]+)\s*=\s*[\"|']{0,1}([^\"']*)[\"|']{0,1}/i", $node['attributes'], $attributes ); 
                if( $attributes[1] ) 
                { 
                    foreach( $attributes[1] as $att_key => $att ) 
                    { 
                        $literal = $attributes[0][$att_key]; 
                        $attribute_name = $attributes[1][$att_key]; 
                        $value = $attributes[2][$att_key]; 
                        $atts[] = array( 'literal' => $literal, 'name' => $attribute_name, 'value' => $value ); 
                    } 
                } 
                else 
                    $node['attributes'] = null; 
                 
                $node['attributes'] = $atts; 
                unset( $atts ); 
            } 
             
            return $nodes; 
        } 
         
        private function removeAttributes( $nodes ) 
        { 
             
            # Remove unwanted attributes 
            foreach( $nodes as $node ) 
            { 
                 
                # Check if node has any attributes to be kept 
                $node_name = $node['name']; 
                $new_attributes = ''; 
                if( is_array( $node['attributes'] ) ) 
                { 
                    foreach( $node['attributes'] as $attribute ) 
                    { 
                        if( ( is_array( $this->allow ) && in_array( $attribute['name'], $this->allow ) ) || $this->isException( $node_name, $attribute['name'], $this->exceptions ) ) 
                            $new_attributes = $this->createAttributes( $new_attributes, $attribute['name'], $attribute['value'] ); 
                    } 
                } 
                $replacement = ( $new_attributes ) ? "<$node_name $new_attributes>" : "<$node_name>"; 
                $this->str = preg_replace( '/'. reg_escape( $node['literal'] ) .'/', $replacement, $this->str ); 
            }             
        } 
         
        private function isException( $element_name, $attribute_name, $exceptions ) 
        { 
            if( array_key_exists($element_name, $this->exceptions) ) 
            { 
                if( in_array( $attribute_name, $this->exceptions[$element_name] ) ) 
                    return true; 
            } 
             
            return false; 
        } 
         
        private function createAttributes( $new_attributes, $name, $value ) 
        { 
            if( $new_attributes ) 
                $new_attributes .= " "; 
            $new_attributes .= "$name=\"$value\""; 
             
            return $new_attributes; 
        }     
    } 
?>

调用实例:
 

代码如下:
<?php
$str = 'Here is some sample html that is <span id="good" font="3"> <font color="red"> getting broken </font> </span> <iframe width="540" height="304" src="http://www.youtube.com/embed/YacZqlFz2bI?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe> <img id="featuredon" src="/wp-content/themes/thesis_182/custom/images/featuredon.jpg" height="23" width="265" />'; 
     
$sa = new cleanHtml; 
$sa->allow = array( 'id' );   
     
$sa->exceptions = array( 
    'img' => array( 'src', 'alt' ), 
    'a' => array( 'href', 'title' ), 
    'iframe'=>array('src','frameborder'), 
); 
     
echo $str = $sa->strip( $str );
?>

    
[2]学习 mysql 格式化日期的函数 DATE_FORMAT,FROM_UNIXTIME,UNIX_TIME
    来源: 互联网  发布时间: 2013-12-24

1、DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
DATE_FORMAT(date,format) 

可以使用的格式有:
格式 描述
%a  缩写星期名
%b  缩写月名
%c  月,数值
%D  带有英文前缀的月中的天
%d  月的天,数值(00-31)
%e  月的天,数值(0-31)
%f  微秒
%H  小时 (00-23)
%h  小时 (01-12)
%I  小时 (01-12)
%i  分钟,数值(00-59)
%j  年的天 (001-366)
%k  小时 (0-23)
%l  小时 (1-12)
%M  月名
%m  月,数值(00-12)
%p  AM 或 PM
%r  时间,12-小时(hh:mm:ss AM 或 PM)
%S  秒(00-59)
%s  秒(00-59)
%T  时间, 24-小时 (hh:mm:ss)
%U  周 (00-53) 星期日是一周的第一天
%u  周 (00-53) 星期一是一周的第一天
%V  周 (01-53) 星期日是一周的第一天,与 %X 使用
%v  周 (01-53) 星期一是一周的第一天,与 %x 使用
%W  星期名
%w  周的天 (0=星期日, 6=星期六)
%X  年,其中的星期日是周的第一天,4 位,与 %V 使用
%x  年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y  年,4 位
%y  年,2 位

实例
下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:
 

代码如下:
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') 
DATE_FORMAT(NOW(),'%m-%d-%Y') 
DATE_FORMAT(NOW(),'%d %b %y') 
DATE_FORMAT(NOW(),'%d %b %Y %T:%f') 
 

结果类似:
Dec 29 2008 11:45 PM 
12-29-2008 
29 Dec 08 
29 Dec 2008 16:25:46 

2. MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME() ...
实例: date => int(11)
 

代码如下:
SELECT FROM_UNIXTIME(date, '%Y-%c-%d %h:%i:%s' ) as post_date ,  
date_format(NOW(), '%Y-%c-%d %h:%i:%s' ) as post_date_gmt  
FROM `article`  where outkey = 'Y' 

1、FROM_UNIXTIME( unix_timestamp )
参数:通常是壹个十位的数字,如:1344887103
返回值:有两种,可能是类似 'YYYY-MM-DD HH:MM:SS' 这样的字符串,也有可能是类似于 YYYYMMDDHHMMSS.uuuuuu 这样的数字,具体返回什么取决于该函数被调用的形式。
 

代码如下:
mysql> select FROM_UNIXTIME(1344887103); 
+---------------------------+ 
| FROM_UNIXTIME(1344887103) | 
+---------------------------+ 
| 2012-08-14 03:45:03   | 
+---------------------------+ 
1 row in set (0.00 sec) 

2、FROM_UNIXTIME( unix_timestamp ,format )
参数 unix_timestamp :与方法 FROM_UNIXTIME( unix_timestamp ) 中的参数含义一样;
参数 format : 转换之后的时间字符串显示的格式;
返回值:按照指定的时间格式显示的字符串;
 

代码如下:
mysql> select FROM_UNIXTIME(1344887103,'%Y-%M-%D %h:%i:%s'); 
+-----------------------------------------------+ 
| FROM_UNIXTIME(1344887103,'%Y-%M-%D %h:%i:%s') | 
+-----------------------------------------------+ 
| 2012-August-14th 03:45:03 | 
+-----------------------------------------------+ 
1 row in set (0.00 sec) 
mysql> select FROM_UNIXTIME(1344887103,'%Y-%m-%D %h:%i:%s'); 
+-----------------------------------------------+ 
| FROM_UNIXTIME(1344887103,'%Y-%m-%D %h:%i:%s') | 
+-----------------------------------------------+ 
| 2012-08-14th 03:45:03 | 
+-----------------------------------------------+ 
1 row in set (0.00 sec) 

1、UNIX_TIMESTAMP()
返回值:当前时间的UNIX格式数字串,或者说是 UNIX 时间戳(从 UTC 时间'1970-01-01 00:00:00'开始的秒数),通常为十位,如 1344887103。
 

代码如下:
mysql> select unix_timestamp(); 
+------------------+ 
| unix_timestamp() | 
+------------------+ 
|   1344887103 | 
+------------------+ 
1 row in set (0.00 sec) 

2、UNIX_TIMESTAMP( date )
参数:date 可能是个 DATE 字符串,DATETIME 字符串,TIMESTAPE 字符串,或者是一个类似于 YYMMDD 或者 YYYYMMDD 的数字串。
返回:从 UTC 时间'1970-01-01 00:00:00'开始到该参数之间的秒数。服务器将参数 date 解释成当前时区的壹个值并且将其转化成 UTC 格式的内部时间。客户端则可以自行设置当前时区。当 UNIX_TIMESTAMP() 用于壹个 TIMESTAMP 列时,函数直接返回内部时间戳的值;如果你传递壹个超出范围的时间到 UNIX_TIMESTAMP(),它的返回值是零。
 

代码如下:
mysql> SELECT UNIX_TIMESTAMP(); 
+------------------+ 
| UNIX_TIMESTAMP() | 
+------------------+ 
|   1344888895 | 
+------------------+ 
1 row in set (0.00 sec) 
 
mysql> SELECT UNIX_TIMESTAMP('2012-08-14 16:19:23'); 
+---------------------------------------+ 
| UNIX_TIMESTAMP('2012-08-14 16:19:23') | 
+---------------------------------------+ 
|1344932363 | 
+---------------------------------------+ 
1 row in set (0.00 sec) 

注意:如果你使用 UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 来转换 TIMESTAMP 值与 Unix 时间戳的值,精度会丢失,因为这个映射在两个方向上不是一一对应的。比如说,由于本地时区的更改,有可能两个 UNIX_TIMESTAMP() 会映射到同壹个 Unix 时间戳的值。 FROM_UNIXTIME() 只会映射到原来的那个时间戳的值上。这里有个例子,在 CET 时区使用 TIMESTAMP:
 

代码如下:
mysql> SELECT UNIX_TIMESTAMP('2005-03-27 03:00:00'); 
+---------------------------------------+ 
| UNIX_TIMESTAMP('2005-03-27 03:00:00') | 
+---------------------------------------+ 
|1111885200 | 
+---------------------------------------+ 
mysql> SELECT UNIX_TIMESTAMP('2005-03-27 02:00:00'); 
+---------------------------------------+ 
| UNIX_TIMESTAMP('2005-03-27 02:00:00') | 
+---------------------------------------+ 
|1111885200 | 
+---------------------------------------+ 
mysql> SELECT FROM_UNIXTIME(1111885200); 
+---------------------------+ 
| FROM_UNIXTIME(1111885200) | 
+---------------------------+ 
| 2005-03-27 03:00:00   | 
+---------------------------+ 

 参考链接: https://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_unix-timestamp


    
[3]php加密与解密函数(不支持中文)
    来源: 互联网  发布时间: 2013-12-24

php加密与解密函数(不支持中文),有用到的朋友可以作个参考。
 

代码如下:
<?php 
    /*
    @名称:PHP加密/解密 
    @link:www.
    @date:2013/2/28
    */ 
    function phpencode($code) { 
        $code = str_replace()(array('<?php','?>','<?PHP'),array('','',''),$code); 
        $encode = base64_encode(gzdeflate($code)); // 开始编码 
        $encode = '<?php'."\neval(gzinflate(base64_decode("."'".$encode."'".")));\n?>"; 
        return $encode; 
    } 
     
    function phpdecode($code) { 
        $code = str_replace(array('<?php','<?PHP',"eval(gzinflate(base64_decode('","')));",'?>'),array('','','','','',''),$code); 
        $decode = base64_decode($code); 
        $decode = @gzinflate($decode); 
        return $decode; 
    } 
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>PHP加密/解密</title> 
    <style type="text/css" media="all"> 
        html, body { 
            margin: 0;padding: 0;  
        } 
         
        body { 
            color: #333; 
            font: 12px Tahoma,Lucida Grande, sans-serif; 
            margin: 9%; 
        } 
         
        a { 
            color: #0055CC;  
        } 
         
        img { 
            border: 0px solid #CCC; 
        } 
         
        h1 { 
            margin: 0; 
        } 
         
        h3 { 
            color: #555; 
            font-size: 1.6em; 
            font-weight: normal; 
            margin: 0;  
        } 
         
        pre { 
            color: #0055CC; 
            font-size: 1.1em; 
            line-height: 1.2; 
            margin: 0.25em 0;  
        } 
         
        p { 
            margin: 0.65em 0; 
        } 
         
        #ads { 
            border-left: 1px solid #eee; 
            float: right; 
            margin: 0 0 2em 2.5em; 
            padding-left: 3px; 
            width: 160px; 
        } 
         
        #source { 
            margin-bottom: 2.5em;  
        } 
         
        pre { 
            overflow: auto; 
            padding:1em 0;  
        } 
         
        h2 { 
            position: relative; 
            top: 0.5em; 
        } 
    </style> 
    </head>     
    <body>     
        <h3>PHP加密/解密</h3> 
        <form method="post"> 
            <textarea name="source" cols="55" rows="8"> 
            <?php 
            if(!emptyempty($_POST['source'])) { 
                if($_POST['button']=='加密') { 
                    echo htmlspecialchars()(phpencode(stripcslashes()($_POST['source']))); 
                } 
                if($_POST['button']=='解密') { 
                    echo htmlspecialchars(phpdecode(stripcslashes($_POST['source']))); 
                } 
            } 
            ?> 
            </textarea>    
            <?php 
            if(!emptyempty($_POST['source'])){ 
                if($_POST['button']=='加密') { 
                    echo '<br /><br />加密成功.'; 
                } 
                if($_POST['button']=='解密') { 
                    echo '<br /><br />解密成功.'; 
                } 
            }else{ 
                echo '<br /><br />利用 base64+gzinflate 对您的PHP代码进行压缩,可以一定程度上保护您的代码版权和减小代码的体积。'; 
            } 
            ?>     
            <br /><br /> 
            <input type="submit" name="button" value="加密"> 
            <input type="submit" name="button" value="解密"> 
        </form>
    </body> 
    </html>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
oracle iis7站长之家
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3