>백엔드 개발 >PHP 튜토리얼 >PHP에서 strtok() 함수를 사용하여 문자열 분할

PHP에서 strtok() 함수를 사용하여 문자열 분할

王林
王林원래의
2023-06-27 08:47:041187검색

PHP 프로그래밍에서 문자열 처리는 자주 사용되는 기능입니다. 가장 일반적으로 사용되는 문자열 조작 함수 중 하나는 strtok()입니다. strtok() 함수는 구분 기호를 지정하여 문자열을 여러 하위 문자열로 분할할 수 있습니다. 이번 글에서는 strtok() 함수에 대한 관련 지식과 사용법을 소개하겠습니다.

1. strtok() 함수의 기본 사용법

strtok() 함수에는 두 개의 매개변수가 있습니다. 첫 번째 매개변수는 분할할 문자열이고 두 번째 매개변수는 지정된 구분 기호입니다. 함수의 반환 값은 현재 분할된 하위 문자열입니다.

코드 예:

$str = "Hello, World! How are you today?";
$delimiter = " ,!";

$token = strtok($str, $delimiter);

while ($token !== false) {
    echo "$token<br>";
    $token = strtok($delimiter);
}

위 예에서는 strtok() 함수를 사용하여 $str 문자열을 쉼표, 공백 및 느낌표를 구분 기호로 사용하여 여러 하위 문자열로 분할합니다. 실행 결과는 다음과 같습니다.

Hello
World
How
are
you
today?

위 코드에서는 while 루프를 사용합니다. 각 루프는 strtok() 함수를 사용하여 하위 문자열 $token을 가져온 다음 이를 출력합니다. 이 함수는 더 이상 하위 문자열이 없음을 나타내기 위해 false를 반환합니다.

2. strtok() 함수의 상세 분석

strtok() 함수의 전체 정의는 다음과 같습니다.

string strtok ( string $str, string $delimiter )

그 중:

  • $str: 분할할 문자열입니다.
  • $delimiter: 지정된 구분 기호입니다.

strtok() 함수 반환 값:

  • 처음 호출할 때 $str에서 구분자가 아닌 첫 번째 하위 문자열을 반환합니다.
  • 이후 호출에서는 구분되지 않은 나머지 하위 문자열을 반환합니다.
  • 구분되지 않은 하위 문자열이 더 이상 없으면 false를 반환합니다.

strtok() 함수를 호출하면 PHP는 $str 문자열을 왼쪽에서 오른쪽으로 탐색하고 $delimiter 구분 기호에 따라 잘라냅니다. 함수가 호출될 때마다 부분 문자열이 반환되고 내부 포인터는 자동으로 뒤로 이동하여 다음 부분 문자열의 시작 부분을 가리킵니다. 즉, 함수가 호출될 때마다 새로운 하위 문자열이 반환됩니다.

그러나 모든 구분 기호를 얻으려면 false가 반환될 때까지 strtok() 함수를 반복적으로 호출해야 한다는 점에 유의해야 합니다.

코드 예:

$str = "this,is,a,comma,separated,string";
$delimiter = ",";

$token = strtok($str, $delimiter);

while ($token !== false) {
    echo "$token<br>";
    $token = strtok($delimiter);
}

위 예에서는 strtok() 함수를 사용하여 $str 문자열을 쉼표를 구분 기호로 사용하여 여러 하위 문자열로 분할합니다. 실행 결과는 다음과 같습니다.

this
is
a
comma
separated
string

이 예에서는 구분 기호를 쉼표로 설정했습니다. strtok() 함수가 처음 호출되면 분할하려는 문자열의 첫 번째 하위 문자열 "this"를 반환합니다. 그런 다음 strtok() 함수를 반복적으로 호출하여 false가 반환될 때까지 매번 새로운 하위 문자열을 반환합니다.

3. strtok() 함수에 대한 참고 사항

  1. 원본 문자열 백업

strtok() 함수를 사용하여 문자열을 분할하면 함수가 원래 문자열을 수정합니다. 후속 프로그램에서 원래 문자열을 사용해야 하는 경우 먼저 백업해야 합니다.

코드 예:

$str = "first,second,third";
$delimiter = ",";
$original_str = $str;

$token = strtok($str, $delimiter);

while ($token !== false) {
    echo "$token<br>";
    $token = strtok($delimiter);
}

echo $original_str;
  1. 구분 기호는 한 문자만 사용할 수 있습니다.

$delimiter 매개 변수는 한 문자만 사용할 수 있습니다. 그렇지 않으면 전달을 기다리는 각 문자로 처리됩니다.

코드 예:

$str = "one,two,three";
$delimiter = ",e";

$token = strtok($str, $delimiter);

while ($token !== false) {
    echo "$token<br>";
    $token = strtok($delimiter);
}

이 코드의 예상 효과는 문자열을 쉼표와 문자 e로 구분하는 것이지만 실제로 함수는 문자 e를 구분 기호로 사용하지 않고 문자 "e"를 문자로 처리합니다. wait Separator 즉, 인접한 두 문자는 일반적인 사용을 위한 구분 기호여야 합니다.

  1. 매개변수 순서의 영향

strtok() 함수에서 첫 번째 매개변수 $str은 분할할 문자열을 지정하고, 두 번째 매개변수는 지정된 구분 기호입니다. 이 두 매개변수의 순서는 바뀔 수 없습니다. 이 두 매개변수의 순서가 바뀌면 오류가 보고됩니다.

코드 예:

$str = "one,two,three";
$delimiter = ",";

// 错误方式
$token = strtok($delimiter, $str);

while ($token !== false) {
    echo "$token<br>";
    $token = strtok($delimiter);
}

IV. 요약

PHP 프로그래밍에는 문자열 연산이 사용되는 시나리오가 많이 있습니다. strtok() 함수는 지정된 구분 기호에 따라 문자열을 여러 하위 문자열로 분할할 수 있는 매우 편리한 문자열 분할 함수입니다.

strtok() 함수를 사용할 때 함수 반환 값의 유형, 원래 문자열의 백업, 구분 기호는 한 문자만 가능하며 매개 변수 순서의 영향에 주의하세요. strtok() 함수를 올바르게 사용하면 문자열을 보다 효율적으로 처리하는 데 도움이 될 수 있습니다.

위 내용은 PHP에서 strtok() 함수를 사용하여 문자열 분할의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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