လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> CSV အစီရင်ခံစာများကိုဒေါင်းလုပ်လုပ်ခြင်း၏မြင်ကွင်းကိုတုပရန် header () ကိုအသုံးပြုပါ

CSV အစီရင်ခံစာများကိုဒေါင်းလုပ်လုပ်ခြင်း၏မြင်ကွင်းကိုတုပရန် header () ကိုအသုံးပြုပါ

M66 2025-05-18

ဝက်ဘ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်တခါတရံတွင် Backend မှတစ်ဆင့် CSV အစီရင်ခံစာကို devonict ထုတ်ပြီး download လုပ်ရန်ဆာဗာတွင်ဒေါင်းလုပ်လုပ်မည့်အစား download လုပ်ရန်အသုံးပြုသူများကိုထောက်ပံ့ရန်လိုအပ်သည်။ PHP ၏ header () function ကို http response header ကိုပြုပြင်ရန်နှင့်ဤ "Simulated download" အကျိုးသက်ရောက်မှုကိုရရှိရန် output content နှင့်ပေါင်းစပ်ရန်အသုံးပြုနိုင်သည်။

ဤဆောင်းပါးသည်ဤ function ကိုတစ်ဆင့်ပြီးတစ်ဆင့်အကောင်အထည်ဖော်ရန်သင့်အားယူပါလိမ့်မည်။

အဆင့် 1 - CSV အချက်အလက်များကိုပြင်ဆင်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် CSV ဒေတာကို output လုပ်ရန်မိတ္တူတစ်ခုလိုအပ်သည်။ ၎င်းကိုဒေတာဘေ့စ်မှထုတ်ယူနိုင်သော်လည်း၎င်းကိုကိုယ်တိုင်ပြင်ဆင်ထားသည့်ခင်းကျင်းမှုဖြစ်နိုင်သည်။

 $data = [
    ['နံမယ်', 'စာပို့', 'မှတ်ပုံတင်ချိန်'],
    ['Zhang San', 'zhangsan@m66.net', '2025-05-01 10:00:00'],
    ['li si', 'lisi@m66.net', '2025-05-02 11:30:00'],
    ['ဝမ်ဝူ', 'wangwu@m66.net', '2025-05-03 14:15:00'],
];

အဆင့် 2: HTTP header ကို set up

Header () function ကိုသုံးရန်ဤသည် browser ကို အသုံးပြု. ဤသည်မှာပုံမှန်ဝက်ဘ်စာမျက်နှာ output မဟုတ်ဘဲဖိုင်ဒေါင်းလုပ်တုန့်ပြန်မှုဟုပြောရန် browser ကိုပြောပြရန်။ အထူးအရေးကြီးသည်မှာ -

  • Content-type အမျိုးအစားသည် Browser ကိုဤအရာသည် CSV ဖိုင်ဖြစ်သည်ဟုဖော်ပြထားသည်။

  • အကြောင်းအရာ - သဘောထားသည် ပူးတွဲဖိုင်ပုံစံကိုသတ်မှတ်ပြီး download လုပ်ထားသောဖိုင်၏အမည်ကိုထောက်ပံ့ပေးသည်။

  • cache-control and Pragma သည် cache ဆိုင်ရာပြ issues နာများကိုရှောင်ရှားရန်ကူညီသည်။

 header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="report.csv"');
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

အဆင့် 3: Output CSV အကြောင်းအရာ

အကြောင်းအရာကို output stream သို့တိုက်ရိုက်ရေးသားရန် fopen ('PHP: // output', 'w' ') ကို သုံးနိုင်သည်။ အလယ်အလတ်ဖိုင်ကိုထုတ်လုပ်ရန်မလိုအပ်ပါ။

 $output = fopen('php://output', 'w');

foreach ($data as $row) {
    fputcsv($output, $row);
}

fclose($output);

နမူနာကုဒ်အပြည့်အစုံ

 <?php
$data = [
    ['နံမယ်', 'စာပို့', 'မှတ်ပုံတင်ချိန်'],
    ['Zhang San', 'zhangsan@m66.net', '2025-05-01 10:00:00'],
    ['li si', 'lisi@m66.net', '2025-05-02 11:30:00'],
    ['ဝမ်ဝူ', 'wangwu@m66.net', '2025-05-03 14:15:00'],
];

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="report.csv"');
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

$output = fopen('php://output', 'w');

foreach ($data as $row) {
    fputcsv($output, $row);
}

fclose($output);

မှတ်သားရန်အရာ

  1. output output မရှိပါ Header ကိုခေါ်ဆိုခြင်းမပြုမီ () , မလိုအပ်သော output (နေရာများ, လိုင်းများအပါအ 0 င်),

  2. coding ပြ issues နာများ ထုတ်ပေးသော CSV တွင်တရုတ်စာလုံးများပါ 0 င်ပါက ETF-8 BOM ကိုအသုံးပြုရန်သို့မဟုတ် Excel ဖွင့်သောအခါ garbled code ကိုရှောင်ရှားရန်အကောင်းဆုံးဖြစ်သည်။

  3. Dynamic Data <br> <br> အထက်ပါဥပမာသည် static Arrays ကိုအသုံးပြုသည်။ အမှန်တကယ်စီမံကိန်းများအနေဖြင့်သင်သည်ဒေတာဘေ့စ်မှမေးမြန်းပြီး၎င်းကိုခင်းကျင်းရန်စီစဉ်ရန်လိုအပ်သည်။