fscanf 함수

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fscanf — 형식에 따라 파일에서 입력을 구문 분석


설명

fscanf(resource $stream, string $format, mixed &...$vars): array|int|false|null

fscanf() 함수는 sscanf()와 유사하지만 stream과 연결된 파일에서 입력을 가져와 지정된 format에 따라 입력을 해석합니다.

형식 문자열의 모든 공백은 입력 스트림의 모든 공백과 일치합니다. 즉, 형식 문자열의 탭(\t)도 입력 스트림의 단일 공백 ​​문자와 일치할 수 있습니다.

fscanf()에 대한 각 호출은 파일에서 한 줄을 읽습니다.


매개변수

stream
일반적으로 fopen()을 사용하여 생성되는 파일 시스템 포인터 리소스입니다.
format
sprintf()에 대한 문서에 설명된 string에 대한 해석된 형식은 다음과 같은 차이점이 있습니다.
  • 기능이 로케일을 인식하지 못합니다.
  • F, g, G 및 b는 지원되지 않습니다.
  • D는 십진수를 나타냅니다.
  • i는 기본 감지가 있는 정수를 나타냅니다.
  • n은 지금까지 처리된 문자 수를 나타냅니다.
  • s는 공백 문자에서 읽기를 중지합니다.
  • * argnum$ 대신 이 변환 사양의 할당을 억제합니다.
vars
선택적 할당된 값입니다.

반환 값

이 함수에 두 개의 매개변수만 전달된 경우 구문 분석된 값은 배열로 반환됩니다. 그렇지 않고 선택적 매개변수가 전달되면 함수는 할당된 값의 수를 반환합니다. 선택적 매개변수는 참조로 전달되어야 합니다.

format에 예상되는 하위 문자열이 string 내에서 사용 가능한 것보다 많으면 null이 반환됩니다. 다른 오류에서는 false가 반환됩니다.


Examples

예제 #1 fscanf() 예제

                  
<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... do something with the values
}
fclose($handle);
?>
                  
                

예제 #2 users.txt의 내용

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it
                

기타

  • fread() - 바이너리 안전 파일 읽기
  • fgets() - 파일 포인터에서 라인 가져오기
  • fgetss() - 파일 포인터에서 줄을 가져오고 HTML 태그를 제거합니다.
  • sscanf() - 형식에 따라 문자열의 입력을 구문 분석합니다.
  • printf() - 형식이 지정된 문자열 출력
  • sprintf() - 형식이 지정된 문자열 반환