(PHP 5 >= 5.1.0, PHP 7)
SplFileObject::fscanf — Parses input from file according to a format
Reads a line from the file and interprets it according to the specified format
, which is
described in the documentation for sprintf().
Any whitespace in the format
string matches any whitespace in the line from the file.
This means that even a tab \t
in the format string can match a single space character in the input stream.
format
Șirul de formatare este compus din zero sau mai multe directive: caractere
obișnuite (în afară de %
), care sunt copiate direct
în rezultat și specificatori de conversie, fiecare
având parametrul său.
Un specificator de conversie e compus după următorul prototip:
%[argnum$][flags][width][.precision]specifier
.
Un întreg urmat de senmul dolar $
,
pentru a specifica ce argument de număr trebuie tratat în conversie.
Flag | Descriere |
---|---|
- |
Alinierea spre stânga în limitele lungimii câmpului; Implicit se efectuează alinierea spre dreapta |
+ |
Prefixează numerele pozitive cu semnul plus
+ ; implicit doar numerele negative sunt prefixate cu
semnul minus.
|
(spațiu) |
Completează rezultatul cu spații. Acesta este comportamentul implicit. |
0 |
Completează numerele cu zerouri în stânga.
Cu specificatorii s se poate de completat cu zerouri
și în dreapta.
|
' (char) |
Completează rezultatul cu caracterul (char). |
Un număr întreg ce indică câte caractere (minimum) trebuie să aibă rezultatul conversiei.
Un punct .
, urmat de un număr întreg, însemnătatea căruia
depinde de specificator:
e
, E
,
f
și F
: acesta este numărul de cifre
ce vor fi tipărite după punctul zecimal (implicit acesta este 6).
g
și G
:
acesta este numărul maxim de cifre semnificative ce va fi tipărit.
s
: acesta funcționează ca punct
de oprire, stabilind limita maximă a numărului de caractere din șir.
Notă: Dacă punctul este specificat fără o valoare explicită pentru precizie, se presupune că aceasta este 0.
Notă: Încercarea de a folosi un specificator de poziție mai mare decât
PHP_INT_MAX
va genera avertizări.
Specifier | Descriere |
---|---|
% |
Specifică caracterul procent. Nu este necesar vre-un argument. |
b |
Argumentul este tratat ca un întreg și prezentat ca număr binar. |
c |
Argumentul este tratat ca un întreg și prezentat ca caracter cu acest cod ASCII. |
d |
Argumentul este tratat ca un întreg și prezentat ca număr zecimal (cu semn). |
e |
Argumentul este tratat ca număr în notație exponențială (de ex. 1.2e+2). Specificatorul de precizie semnifică numărul de cifre după virgulă începând cu PHP 5.2.1. În versiuni anterioare el specifica numărul de cifre semnificative (cu una mai puțin). |
E |
La fel ca și specificatorul e , dar folosește
caracterul majuscul (de ex. 1.2E+2).
|
f |
Argumentul este tratat ca număr cu virgulă și prezentat ca atare (în dependență de setările de localizare). |
F |
Argumentul este tratat ca număr cu virgulă și prezentat ca atare (fără a se ține cont de setările de localizare). Disponibil începând cu PHP 5.0.3. |
g |
Format general. Fie că P este egal cu precizia, dacă nu este zero, 6 dacă precizia este omisă, sau 1 dacă precizia este zero. Atunci dacă o conversie cu stilul E ar avea un exponent X: Dacă P > X ≥ −4, atunci conversia este de stilul f și precizia P − (X + 1). În caz contrar, conversia este de stilul e și precizia P − 1. |
G |
La fel ca și specificatorul g , dar utilizează
E și f .
|
o |
Argumentul este tratat ca întreg și prezentat ca număr octal. |
s |
Argumentul este tratat și prezentat ca șir de caractere. |
u |
Argumentul este tratat ca întreg și prezentat ca număr zecimal fără semn. |
x |
Argumentul este tratat ca întreg și prezentat ca număr hexazecimal (cu caractere minuscule). |
X |
Argumentul este tratat ca întreg și prezentat ca număr hexazecimal (cu caractere majuscule). |
Specificatorul de tip c
ignoră completarea cu spații și lungimea
Încercarea de a folosi o combinație din specificatori de șiruri de caractere și lungime cu seturi de caractere ce necesită mai mult de un octet per caracter poate da rezultate imprevizibile
Variabilele vor fi aduse la un tip potrivit pentru specificatorul:
Tipul | Specificatorii |
---|---|
string |
s |
integer |
d ,
u ,
c ,
o ,
x ,
X ,
b
|
double |
g ,
G ,
e ,
E ,
f ,
F
|
vars
The optional assigned values.
If only one parameter is passed to this method, the values parsed will be returned as an array. Otherwise, if optional parameters are passed, the function will return the number of assigned values. The optional parameters must be passed by reference.
Example #1 SplFileObject::fscanf() example
<?php
$file = new SplFileObject("misc.txt");
while ($userinfo = $file->fscanf("%s %s %s")) {
list ($name, $profession, $countrycode) = $userinfo;
// Do something with $name $profession $countrycode
}
?>
Contents of users.txt
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it