使用PHP如何去除字符串结尾的字符
前言
casecase1: str_replace()我最先开始想到的是使用str_replace函数。但是会有个问题,这个函数可以过滤掉子字符串,虽然可以限定过滤的次数,但是不能限定过滤结尾的字符串,故pass掉。 case2: mb_strpos + mb_substr() + mb_strlen()思路是这样的:分别获取过滤字符串长度,”官方下载“就是4个字符,然后使用mb_substr切割结尾的4个。 注意
case3: trim()case2虽然可以解决本需求,但是觉得很麻烦,就问同事,同事有没有更好的办法。 同事:”可以用trim“ 我:(心想‘trim是第一个被我pass掉的函数啊。‘)trim中文的话会出现乱码。 同事:举个栗子 我:。。。。。 然后我就去官网仔细读了一遍trim函数,收获颇大。
但是关于trim中文会乱码的原因没找到,通过谷歌终于找到了,里边原理讲得很清楚了,我就不赘述了。 原理 原理中没有说明怎么生成16进制的值,这里做个补充:bin2hex() 此外官网还提示,除了trim,split函数和splice函数也会出现类似问题 case4: preg_replace在搜寻trim乱码的过程中,发现还可以使用正则替换。当时有可能局限在这个需求,思路一下变的狭隘了。 preg_replace('/下载$/','',$str); 结论使用正则替换结尾的字符串是最简单的解决方法。 但是通过case2,自己运用到好多函数以及考虑如何优化来解决一个需求的感觉也是很好的(不知道这算不算算法,哈哈)。 通过这个需求还总结了之前脑子里关于“trim中文乱码”的模糊记忆。 感谢需求! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |