php trim函数删除nbsp空格详解

 更新时间:2016年11月25日 17:05  点击:1891
在php中trim函数是删除字符串中空格的并不是html代码的nbsp空格了,那么我们可不可以使用期trim来删除呢,其实稻简单下面我们来看看吧。

此处所指的nbsp是实体,而不是nbsp四个字符

 代码如下 复制代码
$str = " abc";
$converted = strtr($str, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
var_dump($converted); // 这儿才是要处理的字符串,上面的都是准备工作

在处理此问题的时候,经历了一番波折,先是var_dump出来,但是和正常的字符串无异。
后来又使用escape尝试输出,发现是xa0,于是就想trim($converted, "xa0"),无果。

最后在php手册的trim函数下的第一个评论发现了解决方案。

 代码如下 复制代码

var_dump(trim($converted, chr(0xc2) . chr(0xa0)));

其实要删除字符串中的 我们压根不需要这么复杂了,只要使用str_replace()就可搞定了。

 代码如下 复制代码

$a ="  www.111cn.net";
echo str_replace(' ','',$a);

结果为

www.111cn.net

php mktime函数获取今天开始和结束的时间截,mktime函数我想大家并不陌生了,他可以把日期转换在时间截了,下面我整理了一一些使用mktime函数对日期转换的例子,希望文章对各位有帮助。

下面我们开始介绍如何获取当天的开始时间截和结束时间截。 代码如下:

mktime(hour,minute,second,month,day,year,is_dst)

参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst
可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。

例子 今日、昨日、上周、本月的起始时间戳和结束时间戳

 代码如下 复制代码

//开始时间截

$start=mktime(0,0,0,date("m"),date("d"),date("Y"));

//结束时间截:
$end=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;

//php获取昨日起始时间戳和结束时间戳
 
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
 
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
 
//php获取上周起始时间戳和结束时间戳
 
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
 
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
 
//php获取本月起始时间戳和结束时间戳
 
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
 
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));

写成函数转换成中文

 代码如下 复制代码

function get_period_time($type='day'){
    $rs = FALSE;
    $now = time();
    switch ($type){
        case 'day'://今天
            $rs['beginTime'] = date('Y-m-d 00:00:00', $now);
            $rs['endTime'] = date('Y-m-d 23:59:59', $now);
            break;
        case 'week'://本周
            $time = '1' == date('w') ? strtotime('Monday', $now) : strtotime('last Monday', $now);
            $rs['beginTime'] = date('Y-m-d 00:00:00', $time);
            $rs['endTime'] = date('Y-m-d 23:59:59', strtotime('Sunday', $now));
            break;
        case 'month'://本月
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0, 0, date('m', $now), '1', date('Y', $now)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, date('m', $now), date('t', $now), date('Y', $now)));
            break;
        case '3month'://三个月
            $time = strtotime('-2 month', $now);
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0,0, date('m', $time), 1, date('Y', $time)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, date('m', $now), date('t', $now), date('Y', $now)));
            break;
        case 'half_year'://半年内
            $time = strtotime('-5 month', $now);
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0,0, date('m', $time), 1, date('Y', $time)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, date('m', $now), date('t', $now), date('Y', $now)));
            break;
        case 'year'://今年内
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0,0, 1, 1, date('Y', $now)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, 12, 31, date('Y', $now)));
            break;
    }
    return $rs;
}

如果我们是一维数组增加数组元素我们可以使用ArrayListay_push,当然除这种方法之外我们还有更直接的办法,下面我来给大家整理php数组添加元素的一些方法总结。


一,一维数组增加元素

$ArrayList = ArrayListay(); 
Array_push($ArrayList, el1, el2 ... eln); 

但其实有一种更直接方便的做法:

 代码如下 复制代码

$ArrayList = ArrayListay(); 
$ArrayList[] = el1; 
$ArrayList[] = el2; 
... 
$ArrayList[] = eln; 

两种方法得出的效果是一样的

添加一个或多个元素

 代码如下 复制代码

<?php
    $ArrayList1 = ArrayListay("a", "b");
    Array_push($ArrayList1, "c", "d");
    print_r($ArrayList1);
  ?>
  运行结果:
   ArrayListay
  (
   [0] => a
   [1] => b
   [2] => c
   [3] => d
  )

注:如果第一个参数不是数组,ArrayListay_push() 将发出一条警告

在数组开头插入元素

1.ArrayListay_unshift

使用方法

 代码如下 复制代码

<?php
$array_Qlist = ArrayListay("军民联防", "banana");
Array_unshift($array_Qlist, "西瓜", "吹牛B");
print_r($array_Qlist);
?>

输出

ArrayListay
(
    [0] => 西瓜
    [1] => 吹牛B
    [2] => 军民联防
    [3] => banana
)

数组添加关联元素使用使用ArrayListay_push或者ArrayListay_unshift是行不通了,那么我们要如何增加呢


使用ArrayListay_merge方法实现类似ArrayListay_unshift在开头添加元素的功能

 代码如下 复制代码

<?php
$array_Qlist = ArrayListay('a', 'B');
$array_Qlist = Array_merge(ArrayListay('front' => '你好小www.111cn.net'), $array_Qlist);
/*
ArrayListay
(
    [front] => 你好小www.111cn.net
    [0] => a
    [1] => b
)
*/
?>

2.+操作符

 代码如下 复制代码

<?php
$array_Qlist = Array('a', 'B');
$array_Qlist = Array('front' => '你好小www.111cn.net') + $array_Qlist;
?>

输出结果与使用ArrayListay_merge方法一样。

3.在元素结尾添加关联数组元素

 代码如下 复制代码

<?php
$array_Qlist = ArrayListay('a', 'B');
$array_Qlist['front'] = '你好小www.111cn.net';
/*
输出
ArrayListay
(
    [0] => a
    [1] => b
    [front] => 你好小www.111cn.net 
)
*/
?>

至于有些朋友说Array_push增加元素与直接$a[]='a'这种性能要差点之外其它的都是一样,如果只要一个值就没可比性了哦。

array_merge()函数在php中是对数据进行合并的,可以把多个数组合成一个数组,并且不改变原数组的值了,但今天我在使用array_merge合并数组时碰到几个小细节上的问题,下面我举例子给各位朋友看看。

1.array_merge()合并

例子

 代码如下 复制代码

$array = array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 = array_merge($array,$array2);

输出结果为

Array ( [a] => bb [b] => cc )

上面因为都是数组就没有问题了,假如我们把$array 设置不是数组看看什么情况

 代码如下 复制代码


$array = 1;//array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 = array_merge($array,$array2);
print_r( $array3 );

运行后结果

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in E:test1.php on line 4

告诉我们必须是要一个数组了,那么这个我就有多种方法来解决,

1.使用is_array() 进行判断了,但是会发现如果合并数组比较多一个个判断不合理,后来发现可以转换数据类型

 代码如下 复制代码

$array = 1;//array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 =  array_merge((array)$array,(array)$array2);
print_r( $array3 );

输出结果不报错了

Array ( [0] => 1 [b] => cc )

他自动把数字1转换成了数组了,所以大家在使用时一定要注意这些细节哦。

下面给大家总结了两种实现金字塔打印的方法,一种是利用了自定义函数,另一种是利用了for循环了,其实两都用到了只是前者高级一些吧。

自定义函数实现金字塔

 代码如下 复制代码
<?php
/**
 * 金字塔
 * string fun_py(int $rows = 9, bool $sort=true)
 * $rows 表示行数 必须为整数 并且必须在1-20之间
 * $sort 表示排序 true表示正序 FALSE表示倒序
 */
function fun_py($rows = 9, $sort=true){
 if ($rows<1 || $rows>20){
  return "必须在1-20之间";
 }
 if($rows!=(int)($rows)){
  return '行数 必须为整数';
 }
 $str="";
 if($sort){
  for($i=1;$i<=$rows;$i++){
   $str.= '<br/>';
   for($j=1;$j<=$i;$j++){
    if($j==1){
     for($k=1;$k<=($rows-$i);$k++){
      $str.= '&nbsp';
     }
    }
    $str.= '*'.'&nbsp';
   }
  }
 } else{
  for($i=$rows;$i>=1;$i--){
   $str.= '<br/>';
   for($j=1;$j<=$i;$j++){
    if($j==1){
     for($k=1;$k<=($rows-$i);$k++){
      $str.= '&nbsp';
     }
    }
    $str.= '*'.'&nbsp';
   }
  }
 }
 return $str;
}
echo fun_py(9,false);
?>


下面再实现个金字塔形状物,通用也是用到for循环

 代码如下 复制代码

<?php
/**
金字塔正序
**/
for($a=1;$a<=10;$a++){
 for ($b=10;$b>=$a;$b--){
    echo "&nbsp";
  }
 for ($c=1;$c<=$b;$c++){
   echo "*"."&nbsp";
 }
 echo "<br />";
}
?>

同样想让这个金字塔倒立起来呢

 代码如下 复制代码

<?php
/**
金字塔玩倒立
**/
for($a=10;$a>=1;$a--){
 for ($b=10;$b>=$a;$b--){
    echo "&nbsp";
  }
 for ($c=1;$c<=$b;$c++){
   echo "*"."&nbsp";
 }
 echo "<br />";
}
?>

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 删除条目时弹出的确认对话框

    复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • php过滤所有的空白字符(空格、全角空格、换行等)

    在php中自带的trim函数只能替换左右两端的空格,感觉在有些情况下不怎么好使,如果要将一个字符串中所有空白字符过滤掉(空格、全角空格、换行等),那么我们可以自己写一个过滤函数。php学习str_replace函数都知道,可以批量替...2015-10-30
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • php跨网站请求伪造与防止伪造方法

    伪造跨站请求介绍伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。...2013-10-01
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • PHP函数strip_tags的一个bug浅析

    PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08