လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Windows Systems တွင် FTP_RAWLIST ကို အသုံးပြု. မှတ်စုများ

Windows Systems တွင် FTP_RAWLIST ကို အသုံးပြု. မှတ်စုများ

gitbox 2025-05-26

1 ။ FTP_RAWLIST သို့မိတ်ဆက်

FTP_RAWList function ၏လုပ်ဆောင်ချက်မှာ FTP command ကို (default စာရင်း ) ကိုပို့ရန်နှင့် FTP server မှပြန်လာသောမူရင်း directory စာရင်းကိုပြန်ပို့ပါ။ ရလဒ်တစ်ခုမှာ array တစ်ခုဖြစ်ပြီးဒြပ်စင်တစ်ခုစီသည်ဖိုင်သို့မဟုတ်လမ်းညွှန်၏အသေးစိတ်အချက်အလက်များပါ 0 င်သည့် string တစ်ခုဖြစ်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

<Code> $ conn = ftp_connect (gitp_connect); ftp_login ($ Conn, 'Username', 'Password'); $ စာရင်း = FTP_RAWLIST ($ CON, '/ လမ်းကြောင်း / လမ်းညွှန်)'); foreach ($ item အဖြစ်စာရင်း) {echo $ item ။ "\ n"; } ftp_close ($ con); </ code>

2 ။ Windows ပလက်ဖောင်းနှင့်အတူအထူးပြ issues နာများ

2.1 List command ftp servers ၏ကွဲပြားခြားနားမှုများ

FTP_RAWLIST မှပြန်လာသောအချက်အလက်ပုံစံသည် FTP server အမျိုးအစားပေါ် မူတည်. မသတ်မှတ်ထားပါ။ 0 င်းဒိုးဆာဗာများ (IIS FTP ကဲ့သို့သော) သည် UNIX / Linux server နှင့်ကွဲပြားခြားနားသောစာရင်းပုံစံကိုပုံမှန်အားဖြင့်ပြန်ပို့လေ့ရှိပြီး,

ဥပမာအားဖြင့်:

  • Unix ဆာဗာသည် -rw-r - R-- 1 အသုံးပြုသူအုပ်စု 12345 Mar 14 10:30 filename.txt

  • 03-14-21 10:30 AM <dis> foldername ကို 03-14-21 10:30 AM

ဤပုံစံကွဲပြားခြားနားမှုသည်ပြန်လည်ပြုပြင်ထားသောရလဒ်များကိုကွဲပြားခြားနားသောအခြေအနေများနှင့်အညီလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ရန်အထူးသဖြင့် Windows စနစ်များကိုလည်ပတ်သည့်အခါပြန်လာသည့်ပုံစံသည် Unix စတိုင်ဖြစ်ရမည်ဟုမယူဆနိုင်ပါ။

2.2 ဇာတ်ကောင် encoding ပြ problem နာ

Windows System FTP ဆာဗာ (GBK, GBK2312 ကဲ့သို့သော GBK, GB2312) ကိုသုံးနိုင်သည်။ ဖြေရှင်းနည်းက

  • ပထမ ဦး ဆုံး FTP server encoding ကိုဆုံးဖြတ်ပါ

  • MB_ConVert_encoding ကို UTF-8 သို့ပြောင်းရန် MB_ConVert_encoding ကို အသုံးပြု. Returning String ကို အသုံးပြု. သက်ဆိုင်ရာ encoding encoding encoding encoding encoding ပြောင်းလဲခြင်း။

ဥပမာ -

<Code> $ စာရင်း = FTP_RAWLIST ($ CON, '/ လမ်းကြောင်း / လမ်းညွှန်'), foreach ($ စာရင်းနှင့် $ item) {$ item = mb_convertpert_encoding ($ item = $ item, utf-8 ',' gbk '); } unset ($ item); </ code>

3 ။ ရလဒ်များကိုခွဲခြမ်းစိတ်ဖြာခြင်း၏ရလဒ်များကို ftp_Rawlist မှပြန်လာသောရလဒ်များ

ကွဲပြားခြားနားသောပလက်ဖောင်းများနှင့်ဆာဗာများ၏ပြန်လာပုံစံများကွဲပြားခြားနားသောကြောင့်အကြံပြုထားသောနည်းလမ်းမှာ -

  • ဆာဗာအမျိုးအစားကိုဆုံးဖြတ်ပါ (အချို့သော FTP ဆာဗာများသည်ချိတ်ဆက်သောအခါအမျိုးအစားအချက်အလက်များကိုပြန်လည်ပေးပို့လိမ့်မည်)

  • ဆာဗာအမျိုးအစားအရကွဲပြားခြားနားသောခွဲခြမ်းစိတ်ဖြာယုတ္တိဗေဒကိုရွေးချယ်ပါ

  • ပုံမှန်အသုံးအနှုန်းများသို့မဟုတ်ဆက်ကပ်အပ်နှံထားသော parsing စာကြည့်တိုက်ကို အသုံးပြု. ပြန်လာသောစာရင်းအတန်းကိုခွဲခြမ်းစိတ်ဖြာပါ

Windows IIS ftp server အတွက်ပြန်လာပုံစံကိုခွဲခြမ်းစိတ်ဖြာခြင်းကိုသရုပ်ပြသောရိုးရှင်းသောဥပမာတစ်ခုမှာ -

<code> foreach ($ item အဖြစ်စာရင်း) {(Preg_match) - (\ d {2}) - (\ d {2}) \ s + ({2}) \ s + (2}) \ t $ ကိုက်ညီ [1] ။ '-' ။ $ ကိုက်ညီ [2] ။ '-' ။ $ ကိုက်ညီ [3]; $ time = $ ကိုက်ညီ [4] ။ $ ကိုက်ညီမှု [5]; $ အမျိုးအစား = $ ကိုက်ညီမှု [6] === '<dir>' ''? 'directory': 'file'; $ name = $ ပြိုင်ပွဲ [7]; ECHO "အမည်: $ အမည်, အမျိုးအစား: $ အမျိုးအစား, ရက်စွဲ: $ ရက်စွဲ $ time '; } အခြား echo "ဂုဏ်သိက္ခာရှိရှိမျဉ်းကြောင်း: $ item \ n"; }}} </ code>

4 ။ ဆက်သွယ်မှုချိန်ညှိချက်များနှင့်အချိန်ကုန်

Windows FTP ဆာဗာများသည်တစ်ခါတစ်ရံတွင်တုန့်ပြန်ရန်နှေးကွေးနေသည်။ ထို့ကြောင့်သင့်လျော်သောအချိန်ကုန်ကိုသတ်မှတ်ရန်အကြံပြုသည်။

<code> $ conn = ftp_connect (gitp_connect), 21, 90); // 90 ဒုတိယအကြိမ်အချိန်ကုန်ဆုံး FTP_Login ($ Con Cons, Username ',' Password '); </ code>

5 ။ passive mode (PASV) နှင့် Active Mode (port)

FTP connection mode ၏သဟဇာတဖြစ်သော Windows နှင့် Linux ပလက်ဖောင်းများတွင်ကွဲပြားသည်။ passive mode ကိုများသောအားဖြင့် Windows အတွက်အကြံပြုသည်။

<Code> FTP_PASV ($ CON, TRUE); </ code>

ဒီလိုမှမဟုတ်ရင် FTP_RAWList က Firewall (သို့) Network Configuration ပြ issues နာတွေကြောင့်လမ်းညွှန်ကိုမရနိုင်ဘူး။


အကျဉ်းချုပ်

Windows စနစ်များရှိ PHP ၏ FTP_RAWLIST ကို အသုံးပြုသောအခါအထူးဂရုပြုပါ။

  • FTP server မှပြန်လာသော directory စာရင်းပုံစံကိုခြားနားချက်

  • ဇာတ်ကောင် encoding ပြ problem နာ

  • ရလဒ်များကိုပြန်ပို့ရန်သင့်လျော်သော parsing

  • ဆက်သွယ်မှုအချိန်ကုန်ခြင်းနှင့်လွှဲပြောင်းခြင်း Mode ချိန်ညှိချက်များ

၎င်းသည် Cross-platform compatibitivity နှင့် program ကိုအားဖြည့်နိုင်သည်။