이 기사의 예에서는 PHP 함수 rtrim() 사용 시 발생하는 이상한 현상을 설명합니다. 참고하실 수 있도록 모두와 공유해 주세요. 자세한 내용은 다음과 같습니다.
오늘 rtrim()
기능을 사용할 때 이상한 문제가 발생했습니다.
echo rtrim('<p></p>', '</p>'); // 输出为 <p echo ltrim('www.php.cn','www.'); // 输出为 php.cn
위 출력 결과는 좀 의외네요. 원래 첫 번째 줄은 e388a4556c0f65e1904146cc1a846bee가 출력되어야 하고, 두 번째 줄은 jb51.net이 출력되어야 한다고 생각했습니다.
이 문제는 오랫동안 저를 괴롭혔고 그 이유를 찾지 못했습니다. 나중에 매뉴얼에서 답을 찾았습니다.
rtrim()은 문자를 단위로 바꿉니다. , 문자열이 아닙니다. 오른쪽에서 왼쪽으로 바꾸면 > 의 6개 문자가 확실히 대체됩니다. 왜냐하면 > 6fb279ad3fd4344cbdd93aac6ad173ac)이므로 왼쪽으로 갈 때 p가 만나면 두 번째 매개변수의 문자열에 p가 포함되지 않습니다. 따라서 대체가 중지되고
이렇게 이해하면 두 번째 줄의 출력 결과가 예상됩니다. 하하...설명서에 명확하게 써있네요. 원본 텍스트: charlist 매개변수를 사용하여 제거하려는 문자를 지정할 수도 있습니다. 간단히 제거하려는 모든 문자를 나열하면 .. 범위를 지정할 수 있습니다. 문자 . PHP 함수 rtrim() 사용 시 이상한 현상과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요! rtrim
, ltrim
, trim
의 두 번째 매개변수가 일치 연산을 위한 문자 목록 집합으로 사용되는 것을 볼 수 있습니다. 이는 기존에 우리가 알고 있던 str_replace
함수의 교체 동작과는 다릅니다.