Η συνάρτηση sscanf
Η συνάρτηση sscanf αναλύει μια συμβολοσειρά, χρησιμοποιώντας την καθορισμένη μορφή,
και επιστρέφει τιμές. Ως πρώτη παράμετρο η συνάρτηση δέχεται τη συμβολοσειρά για ανάλυση,
ως δεύτερη - τη συμβολοσειρά μορφοποίησης, και οι επόμενες παράμετροι (προαιρετικές) - μεταβλητές,
στις οποίες θα εγγραφούν τα αποτελέσματα της ανάλυσης.
Στη συμβολοσειρά μορφοποίησης χρησιμοποιούνται ειδικοί χαρακτήρες (format specifiers), που ξεκινούν με το πρόσημο % και ελέγχουν τη μορφοποίηση της εξόδου.
Σύνταξη
sscanf(string $str, string $format [, mixed &$... ]): mixed
Format Specifiers
| Specifier | Περιγραφή |
|---|---|
%s |
Συμβολοσειρά |
%d |
Ακέραιος αριθμός με πρόσημο (δεκαδικός) |
%u |
Ακέραιος αριθμός χωρίς πρόσημο (δεκαδικός) |
%f |
Αριθμός κινητής υποδιαστολής (εξαρτώμενος από το locale) |
%F |
Αριθμός κινητής υποδιαστολής (μη εξαρτώμενος από το locale) |
%c |
Χαρακτήρας κατά ASCII-κωδικό |
%x |
Ακέραιος αριθμός στο δεκαεξαδικό σύστημα (πεζά γράμματα) |
%X |
Ακέραιος αριθμός στο δεκαεξαδικό σύστημα (κεφαλαία γράμματα) |
%o |
Ακέραιος αριθμός στο οκταδικό σύστημα |
%b |
Ακέραιος αριθμός στο δυαδικό σύστημα |
%e |
Επιστημονική σημειογραφία (πεζά γράμματα) |
%E |
Επιστημονική σημειογραφία (κεφαλαία γράμματα) |
%g |
Σύντομη μορφή %e ή %f |
%G |
Σύντομη μορφή %E ή %F |
%% |
Σύμβολο ποσοστού |
Παράδειγμα
Ας αναλύσουμε μια συμβολοσειρά, εξάγοντας έναν αριθμό και κείμενο:
<?php
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
Αποτέλεσμα εκτέλεσης κώδικα:
[42, 'the']
Παράδειγμα
Ας αναλύσουμε μια ημερομηνία σε συστατικά:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Year: 2023, Month: 12, Day: 31'