>  기사  >  백엔드 개발  >  PHP 스캔프()

PHP 스캔프()

王林
王林원래의
2024-08-29 12:55:391188검색

sscanf()는 필요한 형식에 따라 구문 분석한 후 구문 분석된 입력 문자열을 반환하는 PHP의 사전 정의된 함수입니다. 이는 2개의 매개변수를 입력받아 필요한 배열을 제공하며, 다른 경우에는 선택적 매개변수와 같은 다른 매개변수가 전달되면 구문 분석된 데이터가 해당 배열에 저장됩니다. 이를 포함하는 변수보다 지정자가 더 많으면 오류가 발생하며, 변수보다 낮은 지정자가 있는 경우 추가 변수는 NULL이 됩니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

PHP sscanf() 구문

아래는 PHP sscanf()의 구문입니다.

sscanf(input_string, format, arg1, arg2, arg3....)

입력 매개변수:

1. input_string: 읽어올 입력 문자열입니다.

2. 형식: 필요에 따라 아래 목록에 따라 형식을 지정할 수 있습니다.

  • %%: 이 형식은 퍼센트 기호로 표시됩니다.
  • %c: 이 형식은 필요한 ASCII 값에 따라 문자를 반환합니다.
  • %d: 이 형식은 부호 있는 10진수 값에 사용됩니다. (0, 음수 또는 양수일 수 있음)
  • %e: 이 형식은 과학적 표기법을 소문자로 반환합니다. (예: 1.2e+2)
  • %u: 0보다 크거나 같은 부호 없는 십진수를 나타내는 데 사용됩니다.
  • %f: 부동소수점수를 표현하는데 사용됩니다.
  • %o: 8진수를 표현하는데 사용됩니다.
  • %s: 문자열 형식을 나타냅니다.
  • %x: 16진수에 대한 소문자를 나타냅니다.
  • %X: 16진수의 대문자를 나타냅니다.

% 기호와 문자 사이에 배치되는 몇 가지 추가 형식 값도 있습니다. (예: %0.3f)

  • +(이렇게 하면 숫자 시작 부분에 +와 – 값이 모두 강제로 적용되며 기본적으로 음수 값만 표시됩니다.)
  • ' (패딩으로 사용할 내용을 설명하며 여기서는 공백이 기본값입니다. 너비 지정자와 함께 사용해야 합니다. 예: 패딩에 x를 사용하는 %x30s).
  • – (왼쪽에 있는 것이 변수 값을 제공합니다).
  • [0-9] (변수 값이 유지하는 최소 너비를 제공합니다.)
  • . [0-9] (10진수의 총 개수 또는 문자열의 최대 길이를 나타냅니다.)
참고: 두 가지 이상의 형식이 사용되는 경우 순서는 위와 동일해야 합니다.
  • arg1: 이는 선택적 매개변수이자 데이터를 저장하는 첫 번째 변수입니다.
  • arg2: 이것도 선택사항이며 데이터를 저장하는 두 번째 변수입니다.
  • arg++: 이는 선택 사항이며 데이터를 계속 저장하는 연속 변수를 나타냅니다.

반환 값: 여기에는 두 가지 경우가 발생할 수 있습니다.

  • 이 함수에 입력 매개변수로 제공된 값이 2개뿐인 경우 데이터는 배열 형식으로 반환됩니다.
  • 다른 선택적 매개변수가 전달되면 구문 분석된 데이터가 해당 매개변수에 저장됩니다.
  • 포함할 수 있는 변수를 초과하는 지정자가 여러 개 있으면 오류가 발생합니다.
  • 포함할 수 있는 변수보다 지정자가 적은 경우 해당 변수에 NULL이 할당됩니다.
  • 예상된 형식보다 더 많은 지정자가 있으면 -1이 반환됩니다.

PHP sscanf()의 예

다음은 언급된 예입니다.

예시 #1

코드:

<?php
$text = "Random sentence goes here with numbers 5 and 8";
$f = sscanf($text,"%s %s %s %s %s %s %d %s %d");
print_r($f);
?>

출력:

PHP 스캔프()

이 예에서는 필요에 따라 텍스트를 지정합니다. 그런 다음 sscanf 함수를 사용하고 입력 문자열을 나타내는 올바른 형식을 지정합니다. 따라서 출력에서 ​​정확한 문자열이 배열로 표시됩니다. 형식이 데이터와 일치하는 경우에만 해당됩니다.

예시 #2

코드:

<?php
// fetching the unique ID of product
list($ID) = sscanf("SN/680001", "SN/%d");
// fetching date of manufacturing
$manf = "March 03 2001";
// fetching the date of expiry
$expiry = "March 03 2002";
// Parsing using sscanf function
list($mon, $day, $yr) = sscanf($manf, "%s %d %d");
list($mon, $day, $yr) = sscanf($expiry, "%s %d %d");
echo "Product $ID was manufactured on $manf and will expire on: $yr-" . substr($mon, 0, 3) . "-$day\n";
?>

출력:

PHP 스캔프()

이 예에서는 고유 제조 ID 및 만료일과 같은 제품 정보를 확인하고 표시하는 방법을 표시합니다. 따라서 첫 번째 매개변수에서는 ID 정보를 가져와 %d 형식으로 구문 분석합니다. 다음으로 제품의 제조 날짜와 만료 날짜를 가져오고 sscanf 함수를 사용하여 필요한 형식과 동일하게 구문 분석합니다. 그런 다음 구문 분석된 모든 내용을 한 문장으로 표시합니다. 원하는 정보를 표시하기 위해 여기에 여러 가지를 추가할 수 있습니다.

Example #3

Code:

<?php
// Fetching designer info and to generate DressInfo entry
$design = "13\tCoco Chanel";
$str = sscanf($design, "%d\t%s %s", $ID, $firstname, $lastname);
// Displaying all the above details after formatting
echo "<author id='$ID'>
<firstname>$firstname</firstname>
<surname>$lastname</surname>
</author>\n";
?>

Output:

PHP 스캔프()

In this example we are using sscanf function to first parse the ID and name of the designer. Then displaying the same in HTML format by splitting the names into first name and last name.

Example #4

Code:

<?php
// We are initializing the string here
$arr = "Character PHP and number 7";
// Parsing the input string according to different format
$format = sscanf($arr,"%s %c%c%c %s %s  %d");
print_r($format);
?>

Output:

PHP 스캔프()

In the above example we are first initializing the string as required and this time including a few character sets in combination with strings. The same we are parsing using the sscanf function.

Conclusion

As seen above in all the examples, sscanf function in PHP is basically used to parse any type of the input string as per the requirements. There are a few cases where this function shows inefficiency to parse the strings, where there may be incorrect output when we try to parse a tab delimited string also having normal spaces in between. It also does not give the expected output if in the code there is a file name with its extension where it finds difficult to separate the two in presence of a “.”.

위 내용은 PHP 스캔프()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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