>  기사  >  백엔드 개발  >  php rtrim() 함수 사용 중 일부 비정상적인 현상

php rtrim() 함수 사용 중 일부 비정상적인 현상

怪我咯
怪我咯원래의
2017-07-04 13:49:021803검색

이 글에서는 PHP 함수 rtrim() 사용 시 나타나는 이상한 현상을 주로 소개하고, php 함수 rtrim의 문자 매칭 과정에서 발생하는 문제와 해결 방법을 구체적인 사례를 바탕으로 분석하여 이해를 더 깊게 도와줄 것입니다. rtrim 필요한 친구들은 함수의 원리와 사용법을 참고하면 됩니다.

이 글은 PHP 함수 rtrim() 사용 시 나타나는 이상한 현상을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

오늘 rtrim() 함수를 사용할 때 이상한 문제가 발생했습니다. rtrim()函数时遇到了一个奇怪的问题:

echo rtrim(&#39;<p></p>&#39;, &#39;</p>&#39;); // 输出为 <p
echo ltrim(&#39;www.php.cn&#39;,&#39;www.&#39;); // 输出为 php.cn

以上的输出结果有点出人意料,本来我想第一行应该输出e388a4556c0f65e1904146cc1a846bee,第二行会输出jb51.net。

这个问题纠结了我好久,一直没有找到原因,后来在手册中找到了答案:

rtrim()是以字符为单位替换,而不是以字符串的。从右往左替换时94b3e26ee717c64999d7867364b1b4a36个字符肯定会被替换掉的,再往左时遇到了>,因为>也包含在rtirm()的第二个参数的字符串(94b3e26ee717c64999d7867364b1b4a3)中,所以也被替换掉了,当再往左时遇到了p,这时p不包含在第二个参数的字符串中。所以替换停止,输出了

如果这样理解的话,第二行的输出结果就是在意料之中了。呵呵……手册中已经写的清清楚楚了。原文:

You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters。

由此可见,rtrimltrimtrim第二个参数是作为一组字符列表进行匹配操作的。这与我们以往认识的<a href="http://www.php.cn/wiki/1372.html" target="_blank">str_replace</a>rrreee

위 출력 결과는 원래 약간 예상치 못한 것입니다. , 첫 번째 줄은 Output e388a4556c0f65e1904146cc1a846bee이어야 하고 두 번째 줄은 jb51.net을 출력해야 한다고 생각했습니다. 🎜🎜이 문제는 오랫동안 저를 괴롭혔고 그 이유를 찾지 못했습니다. 나중에 매뉴얼에서 답을 찾았습니다. 🎜🎜rtrim()은 문자를 단위로 바꿉니다. , 문자열 🎜이 아닙니다. 오른쪽에서 왼쪽으로 바꾸면 > 의 6개 문자가 확실히 대체됩니다. 왜냐하면 > 6fb279ad3fd4344cbdd93aac6ad173ac)이므로 왼쪽으로 갈 때 p가 만나면 두 번째 매개변수의 문자열에 p가 포함되지 않습니다. 따라서 대체가 중지되고 🎜🎜이렇게 이해하면 두 번째 줄의 출력 결과가 예상됩니다. 하하...설명서에 명확하게 써있네요. 원본 텍스트: 🎜🎜charlist 매개변수를 사용하여 제거하려는 문자를 지정할 수도 있습니다. ..를 사용하면 제거하려는 모든 문자를 나열할 수 있습니다. 문자 범위🎜를 지정하세요. 🎜🎜rtrim, ltrim, trim의 두 번째 매개변수가 문자 목록 집합으로 사용되는 것을 볼 수 있습니다. 매칭 작업. 이는 우리가 알고 있던 <a href="http://www.php.cn/wiki/1372.html" target="_blank">str_replace🎜</a> 함수의 교체 연산과 다릅니다. 전에. 🎜

위 내용은 php rtrim() 함수 사용 중 일부 비정상적인 현상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.