<?php
// ဆောင်းပါးခေါင်းစဉ်:အသုံးပြု stream_get_meta_data ဖိုင်စီးတစ်ခု၏ဖတ်ရန်ကိုဖတ်ရှုရန်မည်သို့ကြည့်ရှုနိုင်မည်နည်း?
/*
တည်နေ PHP အလယ်ပိုင်း,ဖိုင်စစ်ဆင်ရေးများသည်များသောအားဖြင့်အချက်အလက်များကိုဖိုင်များမှတစ်ဆင့်ဖတ်ရန်သို့မဟုတ်ရေးရန်ကျွန်ုပ်တို့အားလိုအပ်သည်။。ခေျာခေျာမောမော,ဖိုင်စီးဆင်းမှုကိုဖတ်ခြင်းနှင့်ရေးသားခြင်းနှင့်အတူပြောင်းလဲခြင်း,特别ဟုတ်ကဲ့တည်နေ读取文件时,ဖိုင်စီး၏ offset အရေးကြီးသောညွှန်ပြချက်ဖြစ်ပါတယ်。ကံကောင်းတာတာ,PHP ထောက်ပံ့ `stream_get_meta_data()` လုပ်ဆောင်ချက်,ကျွန်တော်တို့ကိုလက်ရှိဖိုင်စီးဆင်းမှု metadata ကိုအဆင်ပြေစွာကြည့်ရှုရန်ခွင့်ပြုသည်,ဖတ်နေ offsets အပါအဝငျ。
本文将介绍ကဲ့သို့何အသုံးပြု `stream_get_meta_data()` လုပ်ဆောင်ချက်来查看文件流的读取偏移量。
*/
///////////////////////////// ဖတ်စာ /////////////////////////////
### ဖိုင်စီးတစ်ခု၏ offset ဆိုတာဘာလဲ?
တည်နေ读取文件时,ဖိုင်စီးသည်လက်ရှိ offset ရှိလိမ့်မည်,表示下一个读取操作从文件အလယ်ပိုင်း的哪个位置开始。သင်ဖတ်သည့်အခါတိုင်း,အဆိုပါ offset ကိုအလိုအလျောက် updated လိမ့်မည်。ဥပမာအားဖြင့်,ဖိုင်အရွယ်အစားလို့ယူဆတယ် 100 ဒရယ်,လက်ရှိ offset ဖြစ်ပါတယ် 50 ဒရယ်,ထို့နောက်နောက်ဖတ်ပါစစ်ဆင်ရေးသည်ဖိုင်မှဖြစ်လိမ့်မည် 51 ဒရယ်开始。
这个偏移量通常ဟုတ်ကဲ့由文件操作လုပ်ဆောင်ချက်(ကဲ့သို့ `fread()` သို့မဟုတ် `fgets()`)အလိုအလျောက်စီမံခန့်ခွဲ。Offsets ကိုနားလည်ခြင်းသည်ဖိုင်ကိုဖတ်ရန်နှင့် optimizing လုပ်ရန်အရေးကြီးသည်,尤其ဟုတ်ကဲ့တည်နေ处理大文件时。
### `stream_get_meta_data()` လုပ်ဆောင်ချက်简介
`stream_get_meta_data()` ဟုတ်ကဲ့ PHP 的一个内置လုပ်ဆောင်ချက်,File Streams ၏ metadata သတင်းအချက်အလက်ရရှိရန်အသုံးပြုခဲ့သည်。ဤအချက်အလက်တွင်လက်ရှိ offset ပါဝင်သည်、စီးအမျိုးအစား(ဥပမာအားဖြင့်读/အရေးအသား mode ကို)、流ဟုတ်ကဲ့否已到达文件末尾等。
语法ကဲ့သို့下:
```php
array stream_get_meta_data(resource $stream);
Stream : စက်ဝိုင်းအရင်းအမြစ်။ ဤအရင်းအမြစ်သည် fopen () သို့မဟုတ်အလားတူလုပ်ဆောင်မှုဖြင့်ဖွင့်လှစ်ထားသည့်ဖိုင်စီးတစ်ခေါက်ဖြစ်ရမည်။
ပြန်လာတန်ဖိုး - ဤလုပ်ဆောင်မှုသည် File Stream Metadata ပါ 0 င်သောအပေါင်းအသင်းခင်းကျင်းမှုကိုပြန်ပို့သည်။
၎င်းတို့အနက် Stream_get_meta_Data () တွင်ခင်းကျင်းမှုသည်သတင်းအချက်အလက်အမြောက်အများပါ 0 င ်သည် ။
Seekase - File Stream သည်ကိုင်တွယ်ဖြေရှင်းနိုင်သည်ဆိုပါ က (I.E. , offset) ကို FSEEK (I.E. ကို offset) ကိုပြောင်းရွှေ့နိုင်သည် ။
ပြောပါ - လက်ရှိဖိုင်စီးဆင်းမှုကိုဖော်ပြသည်။
ဖိုင်စီးတစ်ခု၏ဖတ်ရန်အညွှန်းများကိုဖတ်ရှုရန် File Stream ကိုဖွင့်ရန်ပထမ ဦး ဆုံးလိုအပ်ပါသည်။ ထို့နောက် metadata ကို stream_get_meta_data () function ကိုဖြတ်ပြီးရရှိသည်။
ဤတွင်ဖိုင်ချောင်းတစ်ခု၏ဖတ်ရန်ကို offset ကိုမည်သို့ကြည့်ရှုရန်မည်သို့ရှုမြင်ကြောင်းပြသသောရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
<?php
// ဖိုင်စီးကိုဖွင့်ပါ
$file = fopen('example.txt', 'r');
// 检查文件ဟုတ်ကဲ့否成功打开
if ($file) {
// ဖိုင်ကိုမဖတ်မီ 10 ဒရယ်
fread($file, 10);
// ဖိုင်စီး၏ metadata ရယူပါ
$metadata = stream_get_meta_data($file);
// လက်ရှိဖတ်ရန် offset output ကို output
echo "လက်ရှိဖတ်ရန်: " . $metadata['tell'] . "\n";
// ဖိုင်စီးကိုပိတ်ပါ
fclose($file);
} else {
echo "ဖိုင်ကိုဖွင့ ်. မရပါ。\n";
}
?>
ဤဥပမာတွင် FOMEL.TXT ကို FOPEN () ကို အသုံးပြု. File.txt ကိုပထမဆုံးဖွင့်ပြီးအချက်အလက်များ၏ပထမ 10 bytes ကိုဖတ်ရန် Free () ကို သုံးပါ။ နောက်တစ်ခုက STREAM_GET_META_DATA () ကို ဖုန်းခေါ်ခြင်းနှင့်လက်ရှိ offset ကိုထုတ်ယူခြင်းနှင့်အတူ metadata ကိုရယူရန် Call ဟုခေါ်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်အချက်အလက်အမြောက်အများကိုပြုပြင်သည့်အခါဖိုင်စီးကိုအမြဲတမ်းစစ်ဆေးရန်လိုအပ်နိုင်သည်။ stream_get_meta_data () ကိုထပ်ခါတလဲလဲခေါ်ဆိုမှုကိုရှောင်ရှားရန်,
<?php
// ဖိုင်စီးကိုဖွင့်ပါ
$file = fopen('example.txt', 'r');
// 检查文件ဟုတ်ကဲ့否成功打开
if ($file) {
// ဖိုင်ကိုမဖတ်မီ 10 ဒရယ်
fread($file, 10);
// ဖိုင်စီး၏ metadata ရယူပါ
$metadata = stream_get_meta_data($file);
// လက်ရှိဖတ်ရန် offset output ကို output
$currentOffset = $metadata['tell'];
echo "လက်ရှိဖတ်ရန်: " . $currentOffset . "\n";
// နောက်တဖန်ဖတ်ပါ 20 ဒရယ်
fread($file, 20);
// အသစ်ပြောင်းထားသော File Stream Metadata ကိုရယူပါ
$metadata = stream_get_meta_data($file);
echo "updated ဖတ် offset: " . $metadata['tell'] . "\n";
// ဖိုင်စီးကိုပိတ်ပါ
fclose($file);
} else {
echo "ဖိုင်ကိုဖွင့ ်. မရပါ。\n";
}
?>
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်မျိုးစုံဖတ်ရှုခြင်းပြုလုပ်ပြီးနောက်ဖိုင်စီးဆင်းမှုများကို offset ပြောင်းလဲမှုများကိုပြောင်းလဲစေနိုင်သည်။
stream_get_meta_Data () သည်လက်ရှိဖတ်နေသည့် offset အပါအ 0 င်ဖိုင်စီး၏ metadata ကိုအလွယ်တကူကြည့်ရှုရန်ခွင့်ပြုသည့်အလွန်လက်တွေ့ကျကျ PHP function ဖြစ်သည်။ offset ကိုနားလည်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဖိုင်များကိုဖတ်ရှုခြင်းလုပ်ငန်းများကိုပိုမိုကောင်းမွန်စွာထိန်းချုပ်နိုင်ပြီးစွမ်းဆောင်ရည်ကိုလျှော့ချခြင်းနှင့်အမှားများကိုလျှော့ချနိုင်သည်။
ဖိုင်စစ်ဆင်ရေးအတွင်းဖိုင်၏လက်ရှိဖတ်ရန်တည်နေရာကိုခြေရာခံရန်လိုအပ်ပါက stream_get_meta_data () သည်အလွန်တန်ဖိုးရှိသည့်ကိရိယာတစ်ခုဖြစ်သည်။