လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stream_get_meta_data ကိုအသုံးပြုပြီး File Stream ကိုဖတ်ရှုခြင်းဖတ်ရှုခြင်းကိုဘယ်လိုကြည့်ရှုနိုင်မလဲ။

stream_get_meta_data ကိုအသုံးပြုပြီး File Stream ကိုဖတ်ရှုခြင်းဖတ်ရှုခြင်းကိုဘယ်လိုကြည့်ရှုနိုင်မလဲ။

gitbox 2025-06-19
<?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) ကိုပြောင်းရွှေ့နိုင်သည်

  • ပြောပါ - လက်ရှိဖိုင်စီးဆင်းမှုကိုဖော်ပြသည်။

stream_get_meta_data () ကို အသုံးပြု. ဖတ်ရန် Beadsets ကြည့်ရှုရန်မည်သို့ကြည့်ရှုနိုင်မည်နည်း။

ဖိုင်စီးတစ်ခု၏ဖတ်ရန်အညွှန်းများကိုဖတ်ရှုရန် 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 () သည်အလွန်တန်ဖိုးရှိသည့်ကိရိယာတစ်ခုဖြစ်သည်။