>백엔드 개발 >PHP 문제 >PHP에서 문자열의 길이를 아는 방법

PHP에서 문자열의 길이를 아는 방법

醉折花枝作酒筹
醉折花枝作酒筹원래의
2021-08-06 14:49:176260검색

이전 글에서는 "자연" 알고리즘을 사용하여 문자열의 유사점과 차이점을 아는 방법을 배웠습니다. 필요하신 경우 ""에서 문자열의 유사점과 차이점을 비교하는 방법"을 읽어보세요. PHP(대소문자 구분)". 이번에는 문자열의 길이를 구하는 방법을 소개하겠습니다. 필요하시면 참고하시면 됩니다.

PHP에서는 문자열의 길이를 알아야 몇 가지 작업을 수행하고 문자열을 이해할 수 있습니다. 그럼 더 이상 고민하지 말고 문자열 함수를 얻는 방법을 살펴보겠습니다.

먼저 작은 예를 살펴보겠습니다.

<?php
echo strlen("World grand, welcome home!");
?>

이 작은 예의 결과는

PHP에서 문자열의 길이를 아는 방법

입니다. 이 답변을 보니 친구들이 이 문자열을 처음부터 끝까지 세어봤을까 하는 생각이 들었습니다. 이 함수가 틀리면 어떻게 해야 합니까? 그러면 나는 성취감을 느낀다. 그런데 처음부터 끝까지 세어보니 이 함수의 길이가 실제로는 26이었습니다.

이 기능에는 문제가 없으므로 이 기능에 대해 이야기해 보겠습니다.

strlen() 함수는 문자열의 길이(바이트 수)를 반환합니다. strlen()은 문자열이 끝나는 시점을 결정하는 것이 중요할 때 루프 및 기타 함수에서 자주 사용됩니다. (예를 들어 루프에서는 문자열의 마지막 문자 다음에 루프를 종료해야 합니다.)

그럼 다른 예를 살펴보겠습니다.

<?php
echo strlen("世界盛大,欢迎回家!");
?>

결과는

PHP에서 문자열의 길이를 아는 방법

위의 예시와는 답변이 다르다는 걸 알았죠? 매개변수 하나는 중국어로 되어 있고 매개변수 하나는 영어로 되어 있는데 그렇게 큰 차이가 있나요? 한자와 구두점을 합하면 길이는 당연히 10자에 불과합니다. 왜 이 문자의 길이가 실제로 30자인지 생각해 본 적이 있습니까?

중국어 단어와 영어 단어는 물론 매우 다릅니다. 그리고 각 문자가 차지하는 바이트 수는 다양한 인코딩에 따라 다릅니다.

ASCII 코드

에서는 영문자 1개가(대소문자 관계없이) 1바이트의 공간을 차지하고, 한자가 2바이트의 공간을 차지합니다. 컴퓨터에서 디지털 단위로 사용되는 일련의 이진수는 일반적으로 8비트 이진수를 십진수로 변환합니다. 최소값은 -128이고 최대값은 127입니다. 예를 들어 ASCII 코드는 바이트입니다.

UTF-8 인코딩

에서 영어 문자 하나는 1바이트에 해당하고 중국어 문자(중국어 번체 포함) 하나는 3바이트에 해당합니다. 중국어 구두점은 3바이트, 영어 구두점은 1바이트를 차지합니다.

유니코드 인코딩

에서 영어 단어 하나는 2바이트이고, 한자(중국어 번체 포함) 하나는 2바이트입니다. 중국어 구두점은 2바이트, 영어 구두점은 2바이트를 차지한다. 이 예제에서 사용된 인코딩은 UTF-8이므로 한자 하나가 3바이트를 차지합니다. 따라서 한자 10자의 길이는 최대 30자가 됩니다.

그게 다입니다. 더 알고 싶다면 여기를 클릭하세요. → →

php 비디오 튜토리얼

위 내용은 PHP에서 문자열의 길이를 아는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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