以ltrim为例

先看手册说明先

定义和用法

ltrim() 函数从字符串左侧删除空格或其他预定义字符。

语法

ltrim(string,charlist)
参数 描述
string 必需。规定要转换的字符串。
charlist

可选。规定从字符串中删除哪些字符。

如果未设置该参数,则全部删除以下字符:

  • "\0" - ASCII 0, NULL
  • "\t" - ASCII 9, 制表符
  • "\n" - ASCII 10, 新行
  • "\x0B" - ASCII 11, 垂直制表符
  • "\r" - ASCII 13, 回车
  • " " - ASCII 32, 空格

貌似看不出什么。看下手册中的例子。

  1. <?php
  2. $text = "\t\tThese are a few words :) ...  ";
  3. $binary = "\x09Example string\x0A";
  4. $hello  = "Hello World";
  5. var_dump($text, $binary, $hello);
  6. print "\n";
  7. $trimmed = ltrim($text);
  8. var_dump($trimmed);
  9. $trimmed = ltrim($text, " \t.");
  10. var_dump($trimmed);
  11. $trimmed = ltrim($hello, "Hdle");
  12. var_dump($trimmed);
  13. // trim the ASCII control characters at the beginning of $binary
  14. // (from 0 to 31 inclusive)
  15. $clean = ltrim($binary, "\x00..\x1F");
  16. var_dump($clean);
  17. ?>

以上会输出:

string(32) "        These are a few words :) ...  "
string(16) " Example string
"
string(11) "Hello World" string(30) "These are a few words :) ... "
string(30) "These are a few words :) ... "
string(7) "o World"
string(15) "Example string
"

貌似只说了过滤空格、制表符什么的。

当然我们有时候也会这么写:

  1. $str = 'tmp_member';
  2. echo ltrim($str, 'tmpe_');

输出结果为 ember

但是这貌似不是我们想要的结果(member)这是为什么呢?

我们再写几个类似的语句试试先

  1. $str1 = 'tmp_umember';
  2. echo ltrim($str1, 'tmp_');
  3. echo '<br />';
  4. $str2 = 'tmp_mpmmtmpmpmmember';
  5. echo ltrim($str2, 'tmp_');
  6. echo '<br />';
  7. $str3 = 'tmp_mpmmtmpmpmmember';
  8. echo ltrim($str3, 'tmpe_');

以上的输出结果为:

umember
ember
ber

综上所述,ltrim函数的第二个参数只是个字符列表而不算做一整个字符串,m是字符列表中包含的字符,所以就ltrim掉了。

ltrim过滤的时候遇到非字符列表中的字符就停止过滤,返回过滤后的值。

所以,才会出现上面的三个结果。

同理 rtrim和trim都是这个原理,只不过过滤的方向不一样罢了。

关于php中trim、ltrim和rtrim的更多相关文章

  1. ORACLE中的LTRIM、RTRIM和TRIM

    LTRIM.RTRIM和TRIM在ORACLE中的用法:1.LTRIM(C1,C2)其中C1和C2都可以字符串,例如C1是'Miss Liu',C2'MisL'等等.这是第一个和SQL SERVER不 ...

  2. SQL 中LTrim、RTrim与Trim的用法

    LTrim.RTrim与 Trim 函数 返回 Variant (String),其中包含指定字符串的拷贝,没有前导空白 (LTrim).尾随空白 (RTrim) 或前导和尾随空白 (Trim).语法 ...

  3. oracle中trim,ltrim,rtrim函数用法

    该函数共有两种作用:第一种,即大家都比较熟悉的去除空格.例子:--TRIM去除指定字符的前后空格SQL> SELECT TRIM(' dd df ') FROM dual;TRIM('DDDF' ...

  4. JavaScript自定义方法实现trim()、Ltrim()、Rtrim()

    去除字符串两端的空格,是字符串处理非常常用的方法如何trim() .Ltrim() .Rtrim(),可惜的是javascript中无此方法,下面有个不错的自定义教程感兴趣的朋友可以参考下 去除字符串 ...

  5. Oracle的trim( )、ltrim( )、rtrim( )三个函数的用法及注意事项

    学习一下用法整理trim().ltrim().rtrim()的用法 trim().ltrim().rtrim()三个函数有两个作用,分别是: 一.去除字符串前后空格(基本用法) trim(string ...

  6. LTrim、RTrim 和 Trim 函数

    返回不带前导空格 (LTrim).后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本. LTrim(string) RTrim(string) Trim(string) strin ...

  7. 重新认识trim,ltrim,rtrim,trailing和leading。

    trim经常用来去除一个字符串的空格,select trim(' dhajkjwa ') from dual; 在上面的语句中,trim的前面也可以加r或者l,表示去掉前面或者后面的空格,r和l代表左 ...

  8. javascript模仿php 函数 trim ltrim rtrim (原创)

    javascript模仿php 函数 trim  ltrim rtrim,去除字符串两边空格或其他符号 本文地址:js trim js php trim function trims(){ this. ...

  9. MS SQL Server的LTRIM,RTRIM和TRIM函数

    在MS SQL Server 2017有了一个新函数TRIM,整合以前版本LTRIM和RTRIM. 这几个函数都是去除字符串头部后尾部的空格. DECLARE @str NVARCHAR(MAX) = ...

  10. (转)C#中Trim()、TrimStart()、TrimEnd()的用法 .

    C#中Trim().TrimStart().TrimEnd()的用法: 这三个方法用于删除字符串头尾出现的某些字符.Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格 ...

随机推荐

  1. TensorFlow——MNIST手写数字识别

    MNIST手写数字识别 MNIST数据集介绍和下载:http://yann.lecun.com/exdb/mnist/   一.数据集介绍: MNIST是一个入门级的计算机视觉数据集 下载下来的数据集 ...

  2. .net 项目中应用Web Services(vs2012)

    一.在asp.net项目中添加Web services1.新建一个asp.net项目(目前尚未验证是否可以在MVC项目中添加)2.在项目名上右击,选择添加→新建项→Web服务,输好名称后确定即可 二. ...

  3. Tomcat部署虚拟主机

    使用Tomcat部署加密虚拟主机,实现: a.使用www.a.com域名访问的页面根路径为/usr/local/tomcat/a/base b.使用www.b.com域名访问的页面根路径为/usr/l ...

  4. CentOS7 利用systemctl添加自定义系统服务

    一.命令systemctl介绍 CentOS 7.0中已经没有service命令,而是启用了systemctl服务器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 命 ...

  5. MAN PVCREATE

    PVCREATE(8)                                                        PVCREATE(8) NAME/名称       pvcreat ...

  6. android设置系统默认开机时间

    1.设置RTC时间,该时间是如果RCT时钟断电以后使用的默认时间 Android L之前: \alps\mediatek\custom\[project]\preloader\ inc\cust_rt ...

  7. git错误处理

    1.今天 当我  执行  git add  somefile 的时候,出现 如下 错误: If no other git process is currently running, this prob ...

  8. ORA-00020: maximum number of processes (800) exceeded

    [oracle@db04-1 ~]$ sqlplus -prelim / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on 星期四 8月 31 ...

  9. docker 部署ftp

    1.搜索ftp镜像 docker search vsftpd 2.拉取ftp镜像 docker pull fauria/vsftpd 3.启动ftpdocker docker run -d -v /h ...

  10. 测开之路七十五:linux常用命令

    常用命令: ls:列出文件或目录 pwd:展示当前所在的目录 mkdir:创建目录 mkdir -p :创建连续的目录 cd:切换目录 vi:编辑内容,点i开始编辑,输入::wq保存 cat 显示文件 ...