PHP တွင် Finfo သည် MIME အမျိုးအစား, encoding စသဖြင့် MESTA အချက်အလက်များစသည်တို့ကိုရယူရန်အလွန်လက်တွေ့ကျသော extension တစ်ခုဖြစ်သည်။ ရိုးရာ Mime_Content_type () function ကိုနှိုင်းယှဉ်လျှင် Finfo သည် ပိုမိုတိကျပြီးပြောင်းလွယ်ပြင်လွယ်ရှိသောလုပ်ဆောင်မှုများကိုပေးသည်။ Finfo ၏မှန်ကန်သောအသုံးပြုမှုသည်ဖိုင်အမျိုးအစားအသွင်အပြင်ကိုထိရောက်စွာကာကွယ်နိုင်ပြီးဖိုင်အမျိုးအစားအပြောင်းအလဲအတွက်လုံခြုံရေးကိုတိုးတက်စေသည်။ ဤဆောင်းပါးသည် finfo နှင့်ဘုံကြိုတင်ကာကွယ်မှုများပြုလုပ်ရန်မှန်ကန်သောနည်းလမ်းများစွာကိုအသေးစိတ်ဖော်ပြထားသည်။
အသုံးအများဆုံးအသုံးပြုမှုမှာ MIME အမျိုးအစားကိုရယူရန်ဖြစ်သည်။ ဥပမာအားဖြင့်တင်ထားသောဖိုင်သည်ပုံသို့မဟုတ် PDF တစ်ခုဖြစ်သည်ဖြစ်စေဆုံးဖြတ်ခြင်းကဲ့သို့သောဖိုင်အမျိုးအစားကိုရယူရန်ဖြစ်သည်။
<?php
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file('/path/to/file.pdf');
echo $mimeType;
အထက်ပါကုဒ်တွင် Fileinfo_Mime_Type က Finfo ကဤကဲ့သို့သော MIMF အမျိုးအစား / PDF သို့မဟုတ် Image / JPEG တို့ဖြစ်သည်ဟုဆိုသည်။ ၎င်းသည်ဖိုင်အမျိုးအစားများကိုတရားစီရင်ရန်စံသတ်မှတ်ချက်ဖြစ်သည်။
တစ်ခါတစ်ရံဖိုင်၏အကြောင်းအရာများကို disk ပေါ်တွင်သိမ်းဆည်းထားခြင်းမရှိသော်လည်း API မှတင်ခြင်းကဲ့သို့သော variable များကိုဖြတ်သန်းသွားသည်။ သငျသညျ finfo_buffer နည်းလမ်းကိုသုံးနိုင်သည်:
<?php
$finfo = new finfo(FILEINFO_MIME_TYPE);
$data = file_get_contents('https://gitbox.net/sample.png');
$mimeType = $finfo->buffer($data);
echo $mimeType;
ဤနည်းလမ်းသည် streaming data သို့မဟုတ် remote crawling အကြောင်းအရာကိုပြုပြင်ရန်အတွက်သင့်လျော်သည်။
Finfo ၏ပုံမှန် application file upload တွင် file contpload file content သည် extension နှင့်ကိုက်ညီမှုရှိမရှိကိုစစ်ဆေးရန်ဆိုသည်မှာဓာတ်ပုံများအနေဖြင့်အန္တရာယ်ရှိသော script ဖိုင်များကိုတင်ခြင်းမှကာကွယ်ပေးသည်။
<?php
if ($_FILES['upload']['error'] === UPLOAD_ERR_OK) {
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file($_FILES['upload']['tmp_name']);
$allowedTypes = [
'image/jpeg' => 'jpg',
'image/png' => 'png',
'application/pdf' => 'pdf',
];
if (!array_key_exists($mimeType, $allowedTypes)) {
die('မထောက်ခံဖိုင်အမျိုးအစားများ。');
}
$ext = $allowedTypes[$mimeType];
move_uploaded_file($_FILES['upload']['tmp_name'], "/uploads/file.$ext");
}
Finfo နှင့် Preset Whitelist မှ MIME အမျိုးအစားကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်တရားမ 0 င်ဖိုင်တင်ခြင်းကိုထိထိရောက်ရောက်ကာကွယ်နိုင်သည်။
ဖိုင် extension များကိုအလွယ်တကူဖြည့်ဆည်းပေးနိုင်သည်။ အမှန်တကယ်အကြောင်းအရာကို Finfo ကို အမြဲတမ်းစစ်ဆေးသင့်သည်။
PHP ပတ် 0 န်းကျင်အဟောင်းများအဟောင်းများ အဟောင်းများဖိုင် တွဲမရှိပါ။ Phpinfo () သို့မဟုတ် extension_loaded ('fileinfo') ဖြင့်စစ်ဆေးနိုင်သည်။
<?php
if (!extension_loaded('fileinfo')) {
die('fileinfo extension ကိုဖွင့်မရပါ');
}
Finfo-> File () ဖိုင်သည်ဖိုင်ကိုတည်ရှိပြီးခွင့် ပြု ချက်များကိုဖတ်ရန်လိုအပ်သည် ။
fileinfo_mime_type အပြင် fileinfo_mime ကို သင် အသုံးပြု. encoding format ကဲ့သို့သောအသေးစိတ်အချက်အလက်များကိုရယူရန်လည်းအသုံးပြုနိုင်သည်။
<?php
$finfo = new finfo(FILEINFO_MIME);
$info = $finfo->file('/path/to/file.txt');
echo $info; // ဥပမာအားဖြင့် text/plain; charset=us-ascii
ဘာသာစကားမျိုးစုံစာရွက်စာတမ်းများသို့မဟုတ် encoding ပြောင်းလဲခြင်းများနှင့်ဆက်ဆံရာတွင်ဤချဉ်းကပ်မှုသည်အထူးသဖြင့်အသုံးဝင်သည်။
Finfo ကို အသုံးပြုခြင်းသည် PHP ရှိဖိုင်အမျိုးအစားများကိုဖော်ထုတ်ရန်အလုံခြုံဆုံးနှင့်ယုံကြည်စိတ်ချရသောနည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ ဖိုင်အတည်ပြုခြင်း, ဝေးလံခေါင်သီသောဒေတာခွဲခြမ်းစိတ်ဖြာခြင်းသို့မဟုတ် system အလိုအလျောက်လုပ်ငန်းတာဝန်များကိုတင်ခြင်း, Finfo ကို အသုံးပြု. စနစ်တကျပြုလုပ်ခြင်းသည်အလွယ်တကူတည်ငြိမ်မှုနှင့်လုံခြုံမှုကိုပြုလုပ်နိုင်သည်ဖြစ်စေ, FileNFO extension ကိုသေချာစွာသေချာစွာလုပ်ပါ။ ပိုမိုကြံ့ခိုင်သောဖိုင်အမျိုးမျိုးလုပ်ဆောင်မှုလုပ်ငန်းစဉ်ကိုတည်ဆောက်ရန် MITEW WHITELED တရားစီရင်ခြင်းဖြင့်ပြုလုပ်ပါ။