FTP_ASEAMEAMEAMEM သည် PHP တွင် FTP extension မှ FTP server များပေါ်တွင်ဖိုင်များ (သို့) လမ်းညွှန်များကိုအမည်ပြောင်းရန်ဖိုင်များသို့မဟုတ်လမ်းညွှန်များကိုအမည်ပြောင်းရန် ftp experate လုပ်ခြင်းဖြစ်သည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
$old_file = '/path/to/oldfile.txt';
$new_file = '/path/to/newfile.txt';
if (ftp_rename($conn, $old_file, $new_file)) {
echo "အောင်မြင်စွာအမည်ပြောင်းပါ";
} else {
echo "အမည်မသိ";
}
ftp_close($conn);
?>
ခွင့်ပြုချက်မလုံလောက် ဒါကအသုံးအများဆုံးအကြောင်းပြချက်ဖြစ်ပါတယ်။ FTP အကောင့်သည်သတ်မှတ်ထားသောဖိုင် (သို့) လမ်းညွှန်အမည်ပြောင်းရန်ခွင့်ပြုချက်မရှိပါ။ FTP server သည်ကွဲပြားခြားနားသောလမ်းညွှန်များနှင့်ဖိုင်များအပေါ်တင်းကျပ်သောခွင့်ပြုချက်ထိန်းချုပ်မှုရှိပြီးသာမန်သုံးစွဲသူများသည်အချို့သောလမ်းညွှန်များကိုဖတ်ရန်နှင့်ရေးနိုင်လိမ့်မည်။
ပစ်မှတ်ဖိုင်ပြီးသားရှိပြီးသားနှင့် overwritet Target File Name သည်ရှိပြီးသားဖိုင်အမည်ရှိပြီးသားနှင့်ဆာဗာသည်တိုက်ရိုက် overwriting ခွင့်မပြုပါကဤအမှားလည်းဖြစ်နိုင်သည်။ အချို့သော FTP ဆာဗာများသည်ဖိုင်များကိုတိုက်ရိုက် overwriting မထောက်ပံ့ပါ။
အရင်းအမြစ်ဖိုင်မရှိပါ အကယ်. အရင်းအမြစ်ဖိုင်ကိုအမည်ပြောင်းခံရမည့်သို့မဟုတ်ဖိုင်ကိုမမှန်ကန်ပါက,
မမှန်ကန်သောလမ်းကြောင်းသို့မဟုတ်တရားမဝင်ဇာတ်ကောင်များပါ 0 င်သည်
FTP server သည်လမ်းကြောင်းပုံစံနှင့်ဖိုင်အမည်အတွက်လိုအပ်ချက်များရှိပြီးမမှန်ကန်သောလမ်းကြောင်းသို့မဟုတ်ဖိုင်အမည်ပုံစံပုံစံသည်စစ်ဆင်ရေးကိုပယ်ချစေနိုင်သည်။
FTP server ကန့်သတ်ချက်များ <br> FTP ဆာဗာအချို့သည်ဖိုင်အမည်ပြောင်းခြင်းလုပ်ငန်းများကိုပိတ်ထားသည်သို့မဟုတ် server ပေါ်လစီများမှစစ်ဆင်ရေးကိုပိတ်ထားသည်။
ဆက်သွယ်မှုစနစ်ပြ problem နာ (Active / Passive Mode)
အချို့ဖြစ်ရပ်များတွင် FTP ၏ဆက်သွယ်မှုပုံစံသည်ခွင့်ပြုချက်သို့မဟုတ်လုပ်ငန်းလည်ပတ်မှုများကိုပုံမှန်ကွပ်မျက်ခြင်းကိုအကျိုးသက်ရောက်နိုင်သည်။
FTP အကောင့်သည် Target Directory နှင့်ဖိုင်များသို့ခွင့်ပြုချက်များကိုအမည်ပြောင်းစေကြောင်းသေချာပါစေ။ FTP client (သို့) ဆာဗာစီမံခန့်ခွဲမှုနောက်ခံမှတဆင့်ခွင့်ပြုချက်များကိုကြည့်ရှုခြင်းနှင့်ပြုပြင်နိုင်သည်။
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
// လက်ရှိဖိုင်ခွင့်ပြုချက်ကိုကြည့်ပါ(အားလုံးမဟုတ်ဘူးFTPဆာဗာအထောက်အပံ့)
$perm = ftp_raw($conn, 'STAT /path/to/oldfile.txt');
print_r($perm);
ftp_close($conn);
?>
ခွင့်ပြုချက်မလုံလောက်ပါက ကျေးဇူးပြု. ဆာဗာအုပ်ချုပ်ရေးမှူးကိုဆက်သွယ်ပါသို့မဟုတ်နောက်ခံမှတဆင့်ညှိပါ။
Directory ထဲရှိဖိုင်များကိုစာရင်းပြုစုရန် FTP_NList function ကို သုံး. အရင်းအမြစ်ဖိုင်တည်ရှိမလားဆိုတာအတည်ပြုပါ။
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
$files = ftp_nlist($conn, '/path/to/');
if (in_array('oldfile.txt', $files)) {
echo "ဖိုင်တည်ရှိသည်,ဆက်လုပ်နိုင်ပါတယ်";
} else {
echo "ဖိုင်မတည်ရှိပါဘူး,ကျေးဇူးပြုပြီးလမ်းကြောင်းကိုစစ်ဆေးပါ";
}
ftp_close($conn);
?>
အကယ်. ပစ်မှတ်ထားဖိုင်တည်ရှိပြီး overwrite မလုပ်နိုင်ပါကသင်ပစ်မှတ်ထားဖိုင်ကိုအရင်ဖျက်နိုင်သည်။
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
if (ftp_delete($conn, '/path/to/newfile.txt')) {
echo "ဖိုင်အဟောင်းကိုအောင်မြင်စွာဖျက်လိုက်သည်,အမည်ပြောင်းရန်ပြင်ဆင်ပါ";
}
if (ftp_rename($conn, '/path/to/oldfile.txt', '/path/to/newfile.txt')) {
echo "အောင်မြင်စွာအမည်ပြောင်းပါ";
} else {
echo "အမည်မသိ";
}
ftp_close($conn);
?>
ဖျက်ပစ်သည့်အခါသတိထားပါ, အရေးကြီးသောဖိုင်များကိုအမှားဖြင့်မဖျက်နိုင်ပါ။
တစ်ခါတစ်ရံတက်ကြွခြင်းနှင့် passive modes အကြားပြောင်းခြင်းသည်ခွင့်ပြုချက်ပြ problem နာကိုဖြေရှင်းနိုင်သည်။
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
// passive mode ကိုသတ်မှတ်ပါ
ftp_pasv($conn, true);
if (ftp_rename($conn, '/path/to/oldfile.txt', '/path/to/newfile.txt')) {
echo "အောင်မြင်စွာအမည်ပြောင်းပါ";
} else {
echo "အမည်မသိ";
}
ftp_close($conn);
?>
server settings အရ switching mode ကိုကြိုးစားပါ။
အထက်ဖော်ပြပါနည်းလမ်းများကိုမဖြေရှင်းနိုင်ပါကအမှားအယွင်းများအတွက်တိကျသောခွင့်ပြုချက်သို့မဟုတ်အခြားအကြောင်းပြချက်များကိုရှာဖွေရန် FTP server log ကိုစစ်ဆေးရန်အကြံပြုသည်။
"စစ်ဆင်ရေးကိုခွင့်ပြု" အမှားသည်များသောအားဖြင့်ခွင့်ပြုချက်များ, ဖိုင်အခြေအနေသို့မဟုတ် FTP ဆာဗာဆာဗာဆက်တင်များနှင့်သက်ဆိုင်သည်။ ပြ esh နာဖြေရှင်းသည့်အဆင့်များတွင် -
FTP အကောင့်ခွင့်ပြုချက်ကိုအတည်ပြုပါ
ဖိုင်လမ်းကြောင်းနှင့်ဖိုင်တည်ရှိမှုကိုအတည်ပြုပါ
ပစ်မှတ်ဖိုင်ကိုကိုင်တွယ်ရာတွင်ပ conflict ိပက်ခတစ်ခုရှိပါသည်
FTP connection mode ကိုပြောင်းပါ
server-side logs ကိုကြည့်ပါ
အထက်ပါနည်းလမ်းများမှတစ်ဆင့်ပြ problems နာများကိုအမည်ပြောင်းခြင်းကိုချောမွေ့စွာဖြေရှင်းနိုင်သည်။
တရားဝင် PHP စာရွက်စာတမ်းများနှင့်ဥပမာများပိုမိုများပြားလာခြင်းနှင့်ဥပမာများကိုရည်ညွှန်းရန် ကျေးဇူးပြု. ကြည့်ရှုပါ။
https://gitbox.net/manual/en/function.ftp-rename.php