Định nghĩa và cách sử dụng
Hàm fscanf() phân tích cú pháp đầu vào từ một tệp đang mở theo định dạng đã chỉ định. Lưu ý: Bất kỳ khoảng trắng nào trong chuỗi định dạng khớp với bất kỳ khoảng trắng nào trong luồng đầu vào. Điều này có nghĩa là một tab (\ t) trong chuỗi định dạng có thể khớp với một ký tự khoảng trắng trong luồng đầu vào.
Cú pháp.
Cú pháp:
fscanf(file, format, mixed)
Trong đó.
Tham số | Mô tả |
---|---|
file | File cần kiểm tra. |
format | Chỉ định định dạng. Giá trị định dạng có thể:
|
mixed | Không bắt buộc. |
Giá trị trả về.
- Nếu chỉ có hai tham số được truyền cho hàm này, các giá trị được phân tích cú pháp sẽ được trả về dưới dạng một mảng. Mặt khác, nếu các tham số tùy chọn được thông qua, hàm sẽ trả về số lượng giá trị được gán. Các tham số tùy chọn phải được thông qua tham chiếu.
Ví dụ.
Ví dụ # 1 fscanf () đơn giản
code:
?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); ?>
Ví dụ # 2 Nội dung của users.txt
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it
Hàm liên quan.
- fread() – Binary-safe file read
- fgets() – Gets line from file pointer
- fgetss() – Gets line from file pointer and strip HTML tags
- sscanf() – Parses input from a string according to a format
- printf() – Output a formatted string
- sprintf() – Return a formatted string
Thông tin thêm.
- Dành cho lập trình viên C / C ++. fscanf () không hoạt động như C / C ++, vì fscanf () di chuyển con trỏ tệp của dòng tiếp theo.
- Nó sẽ là tuyệt vời để chính xác trong tài liệu fscanf mà một cuộc gọi đến hàm, đọc một dòng hoàn chỉnh. và không chỉ số lượng giá trị được xác định trong định dạng. Nếu một tệp văn bản chứa 2 dòng, mỗi dòng chứa 4 giá trị nguyên, đọc tệp với 8 fscanf ($ fd, “% d”, $ v) không chạy! Bạn phải làm 2 fscanf ($ fd, “% d% d% d% d”, $ v1, $ v2, $ v3, $ v4);
- Nếu bạn muốn phân tích một tệp cron, bạn có thể sử dụng mẫu này:
<?php while ($cron = fscanf($fp, "%s %s %s %s %s %[^\n]s")) { } ?>
- Một chức năng khác để đọc một tệp và trả về một bản ghi / chuỗi bởi một dấu phân cách. Nó rất giống với fgets () với dấu phân cách là một tham số bổ sung. Hoạt động tuyệt vời trên nhiều dòng.
function fgetd(&$rFile, $sDelim, $iBuffer=1024) { $sRecord = ''; while(!feof($rFile)) { $iPos = strpos($sRecord, $sDelim); if ($iPos === false) { $sRecord .= fread($rFile, $iBuffer); } else { fseek($rFile, 0-strlen($sRecord)+$iPos+strlen($sDelim), SEEK_CUR); return substr($sRecord, 0, $iPos); } } return false; }
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm fscanf() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com