首页 > 编程技术 > php

php常用函数之strip_tags函数用法

发布时间:2016-11-25 16:45

strip_tags函数是过滤字符串中的html标签了,今天我们一起来看看这strip_tags函数的具体使用方法了,希望例子能够对各位有用。

A,定义和用法

strip_tags() 函数去除字符串中的 HTML、XML 以及 PHP 的标签。

strip_tags(string,allow)

参数    描述

string    必需。规定要检查的字符串。

allow    可选。规定允许的标签。这些标签不会被删除。

注释:该函数始终会剥离 HTML 注释。这点无法通过 allow 参数改变。

B,例子

例1

echo strip_tags("Hello <b>world!</b>");

输出:

Hello world!

例2

echo strip_tags("Hello <b><i>world!</i></b>","<b>");

输出:

Hello world!


例子3、 strip_tags() example

 
<?php$text = '<p>Test paragraph.</p><!-- Comment --> Other text';echo strip_tags($text);echo "\n";// Allow <p>echo strip_tags($text, '<p>');?>
 

上例将输出:

Test paragraph. Other text
<p>Test paragraph.</p> Other text


实例4:

<?php
    $str = "Hello <b><i>world</i></b>!";
    echo strip_tags($str);
    echo '<br />';
    echo strip_tags($str, '<b><i>');
?>

输出结果:

Hello world!
Hello world!

例子5

如果要使用php删除html标记中的特定标签呢?

这个就需要代码来实现了,如下:


    function strip_selected_tags($text, $tags = array())
    {
        $args = func_get_args();
        $text = array_shift($args);
        $tags = func_num_args() > 2 ? array_diff($args,array($text)) : (array)$tags;
        foreach ($tags as $tag){
            if( preg_match_all( '/<'.$tag.'[^>]*>([^<]*)</'.$tag.'>/iu', $text, $found) ){
                $text = str_replace($found[0],$found[1],$text);
            }
        }

        return preg_replace( '/(<('.join('|',$tags).')( | |.)*/>)/iu', '', $text);
    }

    $str = "[url="]123[/url]";
echo strip_selected_tags($str,array('b'));

php date(): It is not safe 警告错误是因为说timezone没有设置,在中国使用的是格林+8小时,所以需要设置一下。

 升级php版本从PHP5.2.17 到 PHP 5.3.21 后出现如下保存
 
 date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. …

 

解决办法

 

 在程序中使用

 date_default_timezone_set('PRC');

 

 或者在php.ini里找到date.timezone这行,把值改成PRC,如date.timezone = PRC。如果没有这一行直接加上就好

 
 [Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York

floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。


float floor ( float value)    舍去法取整

返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大。

例子1、floor去掉小数点功能

$min=(strtotime('21:20:00') ? strtotime('18:30:00'))/60;

//php去掉小数点后的全部数字

$hour=floor($min/60);

$overMin=$min%60;

//大于50分钟算一小时

if($overMin>=50){

$hour+=1;

}

例子

<?php 

echo floor(4.3);   // 4 

echo floor(9.999); // 9 

?>

float ceil ( float value)    进一法取整

返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大。

<?php 

echo ceil(4.3);    // 5 

echo ceil(9.999);  // 10 

?>

float round ( float val [, int precision])    对浮点数进行四舍五入
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。

<?php 
echo round(3.4);         // 3 
echo round(3.5);         // 4 
echo round(3.6);         // 4 
echo round(3.6, 0);      // 4 
echo round(1.95583, 2);  // 1.96 
echo round(1241757, -3); // 1242000 
echo round(5.045, 2);    // 5.04 
echo round(5.055, 2);    // 5.06 
?>

strtotime在php中是时间的一个操作了,php strtotime函数自带了许多的参数了,每一个参数返回的内容会稍的区别了,下面我们来看看在strtotime中+day 或者 +days返回是什么样的结果呢
+3 day:
echo date( 'Y-m-d H:i:s', strtotime( '+3 day' ) );
+3 days:
echo date( 'Y-m-d H:i:s', strtotime( '+3 days' ) );

输出的结果都是相同的。

下面都是相似的用法

strtotime( '+1 day' );

strtotime( '+3 day' );

strtotime( '+1 days' );

strtotime( '+3 days' );

strtotime( '+1 weeks' );

strtotime( '+3 week' );

出现这个问题的原因是php不是一个严格的编程语言。

strtotime函数的一些用法
1、 strtotime(”JAN”)和strtotime(”January”)
这两个用法的效果是一样的,都是返回指定月份的今天,如果指定月份没有今天,则顺延到下一个月。 如在2011-03-31计算二月,代码:

echo date("Y-m-d H:i:s", strtotime("feb", strtotime("2011-03-31")));

程序会输出: 2011-03-03 00:00:00。 从表象来看,这个结果也许不一定是我们想要的,但是这也算是一种解决方案,这种方案是由什么决定的呢? strtotime函数在执行月份的计算时只计算了月份,相当于直接将月份设置为指定的月份的值,而如jan,january都会有一个对应内部数值。
2、 first关键字
first是一个辅助型的关键字,它可以与星期,天等可以指定确认值的关键字组合使用,如求2011年的第一个星期天:

echo date("Y-m-d H:i:s", strtotime("second sunday", strtotime("2011-01-01"))), "<br />";

在PHP的源码中,对于first与星期和天的组合使用是分开的,即first day对应一个处理操作, 在最终的C实现中,天的值指定为1,即time结构中的d字段指定为1,如下代码:

switch (time->relative.first_last_day_of) {  

         case 1: /* first */  

             time->d = 1;  

             break;  

         case 2: /* last */  

             time->d = 0;  

             time->m++;  

             break;  

     }

3、previous和next关键字
与first类似,previous关键字可以与星期,天组合使用,表示指定时间的前一个星期几或前一天。如下所示代码:

echo date("Y-m-d H:i:s", strtotime("previous sunday", strtotime("2011-02-01"))), "<br />"; 
程序会输出:2011-01-30 00:00:00


程序求2011-02-01的前一个星期天。
next关键字与previous相反,它表示下一个星期几或后一天。
4、 last关键字
last关键字既可以作为上一个,也可以作为最后一个。如求上一个星期天的日期:

echo date("Y-m-d H:i:s", strtotime("last sunday", strtotime("2011-02-05"))), "<br />"; 
程序会输出: 2011-01-30 00:00:00


当程序作为最后时,其应用场景是指定日期所在月的最后一天,相当于date(”t”)的结果。如求2000年2月的最后一天:

echo date("Y-m-d H:i:s", strtotime("last day", strtotime("2000-02-01"))), "<br />";

first、previous、last和this关键字在re文件中属于同一组。
5、 back和front关键字
这两个关键字是对一天中的小时的向前和向后操作,其调用格式如下:

echo date("Y-m-d H:i:s", strtotime("back of 24", strtotime("2011-02-01"))), "<br />";  

echo date("Y-m-d H:i:s", strtotime("front of 24", strtotime("2011-02-01"))), "<br />";

•back表示将时间设置指定小时值的后一个小时的15分的位置。如果是24点,则算到第二天的0点15分。
•front表示将时间设置指定小时值的前一个小时的45分的位置。如果是0点,则算前一天的23点45分。


上面的代码输出:2011-02-02 00:15:00 2011-02-01 23:45:00。 其中back of和front of后接的数组必须大于等于0并且小于等于24。

本文章为各位介绍一篇关于PHP实现时间轴函数例子,如果对于PHP实现时间轴函数不了解可以和小编一起来看看。

本文介绍如何用PHP将时间显示为“刚刚”、“5分钟前”、“昨天10:23”等时间轴形式,而不是直接显示具体日期和时间。
本文将介绍如何实现基于时间轴的时间的转换。
首先我们要明白时间的几个函数:
time():返回当前的 Unix 时间戳
date():格式化一个本地时间/日期。
应用举例:
 

date("Y-m-d H:i:s",time());


格式化当前时间,输出:2010-10-11 05:27:35
strtotime():将任何英文文本的日期时间描述解析为 Unix 时间戳。
应用举例:
 

echo strtotime("+1 day"), "\n";


输出1天前的时间戳:1286861475
date_default_timezone_set():设定要用的默认时区。
一般我们设置北京时间:date_default_timezone_set("PRC");
理解上面几个函数后我们来写时间轴函数:
该函数的原理就是将系统当前时间与目标时间比较,得到一个差值,再将差值与时间范围(转换成秒)比较,根据其处在时间轴的范围输出不同的结果(如:5分钟前)。为了便于计算,我们将时间都转换成Unix时间戳。
 

function tranTime($time) { 

    $rtime = date("m-d H:i",$time); 

    $htime = date("H:i",$time); 

     

    $time = time() - $time; 

 

    if ($time < 60) { 

        $str = '刚刚'; 

    } 

    elseif ($time < 60 * 60) { 

        $min = floor($time/60); 

        $str = $min.'分钟前'; 

    } 

    elseif ($time < 60 * 60 * 24) { 

        $h = floor($time/(60*60)); 

        $str = $h.'小时前 '.$htime; 

    } 

    elseif ($time < 60 * 60 * 24 * 3) { 

        $d = floor($time/(60*60*24)); 

        if($d==1) 

           $str = '昨天 '.$rtime; 

        else 

           $str = '前天 '.$rtime; 

    } 

    else { 

        $str = $rtime; 

    } 

    return $str; 

}


函数tranTime()中的参数$time必须为Unix时间戳,如果不是请先用strtotime()将其转换成Unix时间戳。上面的代码一看就明白了,不用再多述。
调用函数,直接输出:

 

$times="1286861696 "; 

echo tranTime($times);

标签:[!--infotagslink--]

您可能感兴趣的文章: