资讯专栏INFORMATION COLUMN

关于php trim方法的错误理解导致的问题

Forest10 / 1733人阅读

摘要:场景中的截取字符串前后字符包括有三个方法下面的例子中只以方法做举例在我之前的认知中当然我很水,从没看过这块源码,如果我想要删除字符串左边的空字符串,空制表符之类的,那么我就直接使用即可如果我想要删除指定字符的时候,比如说现在有个字符串,我要

场景

php中的截取字符串前后字符包括有:ltrim,rtrim,trim三个方法

下面的例子中只以ltrim方法做举例
在我之前的认知中(当然我很水,从没看过这块源码),如果我想要删除字符串左边的空字符串,空制表符之类的,那么我就直接使用ltrim($str)即可

如果我想要删除指定字符的时候,比如说现在有个字符串helloworld,我要截取掉头部的h字符,直接var_dump(ltrim("helloworld", "h"));即可得到我期望的结果输出elloworld
以上的都是在我以为的范围内,我也一直都是这么使用的,直到有一次我们有个需求要在一些字符串上做openssl_encrypt加密,加密之后做个base64,然后拼接上我们的特殊的字符串前缀KO:,每次加密完成后拼接KO:字符,同样的,解密之前先把KO:拆出去在解密,结果发现解密怎么解都是失败,后来打了几个断点发现是ltrim的时候和预期结果不一样

复现

原因分析

经过上面的小demo,大家应该就知道原因是啥了,说的最简单通俗的就是它把前面的$str做一个轮训,一个字符一个字符的在后面的$character_mask里面看是不是在其中,如果是的话则进行截取,不在的话停止运行
ltrim代码形式的表达:


解决方案

解决方案就是使用php中的一些操作字符串函数,多加了基层判断

  if (substr($str, 0, strlen($character_mask)) == $character_mask) {
            echo substr($str, strlen($character_mask));
  }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31221.html

相关文章

  • 关于input一些问题解决方法分享

    摘要:输入框首尾清除空格在中监听键盘事件移动端底部被弹出的键盘遮挡输入框是通过一直放在页面底部,当点击进行输入的时候,就会出现如下图片情况有的机型会遮挡一些。 前言 input是我们接受来自用户的数据常用标签,在前端开发中,相信每个人都会用到这个标签,所以在开发过程中也时候也会遇到一些问题,本文的内容是我在跟input相爱相杀过程中产生的,在此记录分享一下。如果喜欢的话可以点波赞/关注,支持...

    骞讳护 评论0 收藏0
  • 关于input一些问题解决方法分享

    摘要:输入框首尾清除空格在中监听键盘事件移动端底部被弹出的键盘遮挡输入框是通过一直放在页面底部,当点击进行输入的时候,就会出现如下图片情况有的机型会遮挡一些。 前言 input是我们接受来自用户的数据常用标签,在前端开发中,相信每个人都会用到这个标签,所以在开发过程中也时候也会遇到一些问题,本文的内容是我在跟input相爱相杀过程中产生的,在此记录分享一下。如果喜欢的话可以点波赞/关注,支持...

    vibiu 评论0 收藏0
  • 关于input一些问题解决方法分享

    摘要:输入框首尾清除空格在中监听键盘事件移动端底部被弹出的键盘遮挡输入框是通过一直放在页面底部,当点击进行输入的时候,就会出现如下图片情况有的机型会遮挡一些。 前言 input是我们接受来自用户的数据常用标签,在前端开发中,相信每个人都会用到这个标签,所以在开发过程中也时候也会遇到一些问题,本文的内容是我在跟input相爱相杀过程中产生的,在此记录分享一下。如果喜欢的话可以点波赞/关注,支持...

    chanjarster 评论0 收藏0
  • 40个对初学者非常有用PHP技巧

    摘要:,,图片,图像也是一样为连接设置正确的字符编码曾碰到过字符被正确地存储在表的问题,也显示它们是正确的,但是当你使用的时候,你的网页上却并不能正确地显示。使用带有正确字符集选项的之前,使用的默认字符编码是,这不能显示例如这样的字符。 今天我们要介绍一些关于改善和优化PHP代码的提示和技巧。请注意,这些PHP技巧适用于初学者,而不是那些已经在使用MVC框架的人。 1.不要使用相对路径,要定...

    imccl 评论0 收藏0

发表评论

0条评论

Forest10

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<