>백엔드 개발 >PHP 문제 >PHP에서 문자가 깨지지 않고 중국어를 가로채는 방법

PHP에서 문자가 깨지지 않고 중국어를 가로채는 방법

PHPz
PHPz원래의
2023-04-24 10:50:541117검색

인터넷이 지속적으로 발전함에 따라 웹 애플리케이션에 대한 수요가 날로 증가하고 있습니다. 일반적으로 사용되는 웹 프로그래밍 언어인 PHP는 대규모 개발자 그룹과 다양한 애플리케이션 시나리오를 보유하고 있습니다. PHP 개발 과정에서 중국어 문자열을 가로채는 것은 일반적인 요구 사항입니다. 그러나 PHP 내장 함수를 직접 사용하여 중국어 문자열을 가로채는 경우 잘못된 문자가 나타납니다. 이 기사에서는 PHP를 사용하여 잘못된 문자 없이 중국어 문자열을 가로채는 방법을 소개합니다.

1. PHP 중국어 문자열 가로채기 문제

PHP에는 문자열 가로채기를 위한 세 가지 함수가 있습니다: substr() 함수, mb_substr() 함수 및 iconv_substr() 함수. 그러나 substr() 함수를 사용하여 중국어 문자열을 가로채는 경우 substr() 함수는 바이트 단위로 가로채기 때문에 한자가 차지하는 바이트 수가 2 또는 3이므로 가로채는 문자가 문자열이 깨집니다. 아래와 같이:

$str = '我是中国人';
echo substr($str, 0, 6);//截取前6个字符

위 코드를 실행하면 "I am ä¸å>½"이 출력됩니다. 보시다시피 이것은 잘못된 코드 조각이며 중국어 문자열이 올바르게 가로채어지지 않습니다.

mb_substr() 함수와 iconv_substr() 함수를 사용하면 잘못된 중국어 문자열 가로채기 문제를 해결할 수 있습니다. 둘 다 UTF-8로 인코딩된 중국어 문자열 가로채기를 지원합니다. 이 두 기능의 사용법은 아래에 소개되어 있습니다.

2. mb_substr() 함수는 문자를 왜곡하지 않고 중국어를 가로채는 기능입니다. mb_substr() 함수는 문자열을 가로채는 데 특별히 사용되는 PHP 함수입니다. 이 기능을 사용하여 중국어 문자열을 가로채면 문자가 왜곡되는 것을 방지할 수 있습니다. 이 함수의 매개변수는 다음과 같습니다.

mb_substr(string $str, int $start, int $length, string $encoding)

이 함수에는 다음과 같은 4개의 매개변수가 있습니다.

$str: 차단해야 하는 문자열
  • $start: 차단할 시작 위치, 0부터 시작;
  • $length: 가로채는 길이, 음수인 경우 문자열 끝까지 가로채게 됩니다.
  • $encoding: 문자열 인코딩 방법, 일반적으로 UTF-8 인코딩입니다.
  • 예를 들어 다음 코드는 mb_substr() 함수를 사용하여 중국어 문자열을 가로챕니다.
$str = '我是中国人';
echo mb_substr($str, 0, 6, 'utf-8');//截取前6个字符

위 코드를 실행하면 출력 결과는 "I am China"입니다.

3. iconv_substr() 함수는 잘못된 문자 없이 한자를 차단합니다.

mb_substr() 함수 외에도 iconv_substr() 함수는 잘못된 중국어 문자열을 차단하는 문제를 해결할 수도 있습니다. iconv_substr() 함수는 PHP에서 문자열을 가로채는 데 특별히 사용되는 함수이기도 합니다. 네 번째 매개변수가 대상 인코딩이 아닌 문자열의 소스 인코딩을 나타낸다는 점에서 mb_substr() 함수와 다릅니다. 여기서는 소스 인코딩 매개변수가 실제 문자열 인코딩과 일치해야 한다는 점에 유의해야 합니다. 이 함수의 매개변수는 다음과 같습니다.

iconv_substr(string $str,int $start, int $length = NULL, string $charset = ini_get('iconv.internal_encoding'))

이 함수에는 다음과 같은 4개의 매개변수가 있습니다.

$str: 차단해야 하는 문자열
  • $start: 차단할 시작 위치, 0부터 시작;
  • $length: 가로채는 길이. NULL인 경우 문자열 끝까지 가로채게 됩니다.
  • $charset: 소스 문자열의 인코딩 방법, 일반적으로 UTF-8 인코딩입니다.
  • 예를 들어 다음 코드는 iconv_substr() 함수를 사용하여 중국어 문자열을 가로챕니다.
$str = '我是中国人';
echo iconv_substr($str, 0, 6, 'utf-8');//截取前6个字符

위 코드를 실행하면 출력 결과는 "I am China"입니다.

4. 요약

웹 애플리케이션 개발에서는 중국어 문자열을 가로채는 것이 일반적인 요구 사항입니다. PHP 내장 함수인 substr() 함수는 문자열을 가로챌 수 있지만 바이트 단위로 가로채기 때문에 한자를 올바르게 처리할 수 없으므로 가로채는 문자열이 깨질 수 있습니다. 따라서 mb_substr() 함수 또는 iconv_substr() 함수를 사용하여 이 문제를 해결할 수 있습니다. 두 함수 모두 UTF-8로 인코딩된 중국어 문자열 가로채기를 지원하고 문자가 깨지는 것을 방지할 수 있습니다.

위 내용은 PHP에서 문자가 깨지지 않고 중국어를 가로채는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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