php使用floor去掉小数点的例子

 更新时间:2016年11月25日 16:45  点击:2985
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 
?>

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'));

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);

mb_detect_encoding函数可以在我们未知字符串编码时判断出字符串的编码了,下文我们一起来详细的了解一下php mb_detect_encoding函数检测字符串编码的例子。


在php中可以用mb_detect_encoding()()函数来判断一个字符串是否为某种编码,具体使用方法和注意事项如下:

需要注意的是,要使用mb_detect_encoding函数,必须开启php中的mbstring扩展(打开php.ini配置,重启服务即可)。

判断方式如下所示:

if( mb_detect_encoding($str, 'UTF-8', true) )
{
    //是UTF-8格式的字符
}

网上有些人说这个函数判断不太准备,其实大致还是没问题的。

例子,利用mb_detect_encoding()判断字符是否为uft-8编码。

$encode = mb_detect_encoding($q, array('GB2312','GBK','UTF-8'));
echo $encode."<br/>";
if($encode=="GB2312")
{
    $q = iconv("GBK","UTF-8",$q);
}
else if($encode=="GBK")
{
    $q = iconv("GBK","UTF-8",$q);
}
else if($encode=="EUC-CN")
{
    $q = iconv("GBK","UTF-8",$q);
}
else//CP936
{
    //$q = iconv("GB2312","UTF-8",$q);
}

可是 mb_detect_encoding 存在一个硬伤,经常出现判断不准确的情况。或许这样就可以解决:


// 使用 iconv 转换并判断是否等值,效率不高
function is_utf8 ($str) {
    if ($str === iconv('UTF-8', 'UTF-8//IGNORE', $str)) {
        return 'UTF-8';
    }
}
// 多种编码的情况
function detect_encoding ($str) {
    foreach (array('GBK', 'UTF-8') as $v) {
        if ($str === iconv($v, $v . '//IGNORE', $str)) {
            return $v;
        }
    }
}

通过以上方式得到字符串编码信息后,就可以利用 iconv 或 mb_convert_encoding 来转换编码了

例子

<?php
/**
 * 检测文件编码
 * @param string $file 文件路径
 * @return string|null 返回 编码名 或 null
 */
function detect_encoding($file) {
    $list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1');
    $str = file_get_contents($file);
    foreach ($list as $item) {
        $tmp = mb_convert_encoding($str, $item, $item);
        if (md5($tmp) == md5($str)) {
            return $item;
        }
    }
    return null;
}
/**
 * 自动解析编码读入文件
 * @param string $file 文件路径
 * @param string $charset 读取编码
 * @return string 返回读取内容
 */
function auto_read($file, $charset='UTF-8') {
    $list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1');
    $str = file_get_contents($file);
    foreach ($list as $item) {
        $tmp = mb_convert_encoding($str, $item, $item);
        if (md5($tmp) == md5($str)) {
            return mb_convert_encoding($str, $charset, $item);
        }
    }
    return "";
}

例子

我创建三个文件:text1.txt  text2.txt text3.txt

分别以ASCII UTF-8 UNICODE 的编码方式保存

代码如下:

 

 

<?php
define ('UTF32_BIG_ENDIAN_BOM'   , chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
define ('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
define ('UTF16_BIG_ENDIAN_BOM'   , chr(0xFE) . chr(0xFF));
define ('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE));
define ('UTF8_BOM'               , chr(0xEF) . chr(0xBB) . chr(0xBF));

function detect_utf_encoding($text) {
    $first2 = substr($text, 0, 2);
    $first3 = substr($text, 0, 3);
    $first4 = substr($text, 0, 3);
  
    if ($first3 == UTF8_BOM) return 'UTF-8';
    elseif ($first4 == UTF32_BIG_ENDIAN_BOM) return 'UTF-32BE';
    elseif ($first4 == UTF32_LITTLE_ENDIAN_BOM) return 'UTF-32LE';
    elseif ($first2 == UTF16_BIG_ENDIAN_BOM) return 'UTF-16BE';
    elseif ($first2 == UTF16_LITTLE_ENDIAN_BOM) return 'UTF-16LE';
}
function getFileEncoding($str){
    $encoding=mb_detect_encoding($str);
    if(empty($encoding)){
        $encoding=detect_utf_encoding($str);
    }
    return $encoding;
}
$file = 'text1.txt';
echo getFileEncoding(file_get_contents($file));  // 输出ASCII
echo '<br />';

$file = 'text2.txt';
echo getFileEncoding(file_get_contents($file));  // 输出UTF-8
echo '<br />';
$file = 'text3.txt';
echo getFileEncoding(file_get_contents($file));  // 输出UTF-16LE
echo '<br />';
?>

注意:要把php.ini中 extension=php_mbstring.dll 前的;号去掉,重启apache就可以了。

[!--infotagslink--]

相关文章

  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • php类的使用实例教程

    php类的使用实例教程 <?php /** * Class program for yinghua05-2 * designer :songsong */ class Template { var $tpl_vars; var $tpl_path; var $_deb...2016-11-25
  • 双冒号 ::在PHP中的使用情况

    前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!双冒号操作符即作用域限定操作符Scope Resoluti...2015-11-08
  • 浅析Promise的介绍及基本用法

    Promise是异步编程的一种解决方案,在ES6中Promise被列为了正式规范,统一了用法,原生提供了Promise对象。接下来通过本文给大家介绍Promise的介绍及基本用法,感兴趣的朋友一起看看吧...2021-10-21
  • 使用jquery修改表单的提交地址基本思路

    基本思路: 通过使用jquery选择器得到对应表单的jquery对象,然后使用attr方法修改对应的action 示例程序一: 默认情况下,该表单会提交到page_one.html 点击button之后,表单的提交地址就会修改为page_two.html 复制...2014-06-07
  • PHP mysql与mysqli事务使用说明 分享

    mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。应用比较多的地方是 mysqli的事务。...2013-10-02
  • Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05