fscanf() (fscanf)
تابع fscanf برای «خواندن قالب بندی شده با fscanf» است. یعنی ورودی فایل را طبق یک الگو format می خواند. «الگو (Format String)» رشته ای با %d، %s و… است. مثل برگه ای که جاهای خالی اش را باید با عدد یا متن پر کنی.
تعریف کوتاه و نکته فاصله ها
fscanf ورودی فایل باز را طبق الگو می خواند. هر فاصله در الگو با هر فاصله در متن جور می شود. حتی \t می تواند با یک فاصله ساده جور شود.
مثال 1: خواندن شناسه و نمره
<?php
$file = fopen("grades.txt", "r");
if ($file) {
while (!feof($file)) {
$count = fscanf($file, "%d %f", $id, $score);
if ($count === 2) {
echo $id . ": " . $score . "\n";
}
}
fclose($file);
}
?>
مثال 2: نام و سن با فاصله دلخواه
<?php
$file = fopen("people.txt", "r");
if ($file) {
while (!feof($file)) {
$ok = fscanf($file, "%s %d", $name, $age);
if ($ok === 2) {
echo $name . " is " . $age . "\n";
}
}
fclose($file);
}
?>
گام های عملی
- فایل را با fopen باز کن.
- الگوی مناسب مثل %d یا %s را بچین.
- با fscanf مقادیر را در متغیرها بریز.
- پس از کار، فایل را با fclose ببند.
نکته: ترتیب «علامت ها» باید طبق فهرست منبع باشد. مثلاً + ، سپس padding، سپس - ، سپس عرض، سپس دقت.
نکته: اگر فقط نمایش ساده می خواهی، گاهی fread یا readfile کافی است.
جمع بندی سریع
- fscanf طبق الگو می خواند.
- فاصله ها انعطاف پذیر هستند.
- الگو را دقیق تنظیم کن.
- فایل را درست ببند.