ပထမ ဦး စွာ FTP server သို့ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန် FTP_Connect ကို သုံးပါ, ပြီးနောက် ftp_login function ကိုရယူပါ။
<?php
// ဆက် FTP ဆာဆာ
$ftp_server = "gitbox.net";
$conn_id = ftp_connect($ftp_server);
if (!$conn_id) {
die("无法ဆက်到 FTP ဆာဆာ $ftp_server");
}
// လော့ဂ်အင်
$ftp_user = "your_username";
$ftp_pass = "your_password";
if (!ftp_login($conn_id, $ftp_user, $ftp_pass)) {
die("FTP လော့ဂ်အင်失败");
}
echo "成功ဆက်并လော့ဂ်အင်到 $ftp_server\n";
?>
အောင်မြင်စွာဝင်ရောက်ပြီးနောက်တွင်ကျွန်ုပ်တို့သည် ftp_Rawlist ကို directory in information ကိုရယူရန် FTP_RAWLIST ကို အသုံးပြုသည်။
<?php
// လက်ရှိလမ်းညွှန်စာရင်းကိုရယူပါ
$directory = "/";
$file_list = ftp_rawlist($conn_id, $directory);
if ($file_list === false) {
die("လမ်းညွှန်စာရင်းမရရှိနိုင်ပါ");
}
// output ကိုလမ်းညွှန်သတင်းအချက်အလက်
foreach ($file_list as $file) {
echo $file . "<br>";
}
?>
ဤတွင် Linux LS -l command ၏ output နှင့်ဆင်တူသောဖိုင်မှတ်တမ်းများပါ 0 င်သော array တစ်ခုရှိသည်။
ပြသရန်ပိုမိုလွယ်ကူစေရန်ဖိုင်များနှင့်လမ်းညွှန်များကိုခွဲခြားရန် FTP_RAWLIST မှပြန်လာသော string ကိုခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည်။
<?php
function parseFtpRawList($raw_list) {
$items = [];
foreach ($raw_list as $line) {
$chunks = preg_split("/\s+/", $line, 9);
if (count($chunks) === 9) {
list($permissions, $number, $owner, $group, $size, $month, $day, $timeOrYear, $name) = $chunks;
$items[] = [
'permissions' => $permissions,
'size' => $size,
'name' => $name,
'is_dir' => $permissions[0] === 'd',
'raw' => $line,
];
}
}
return $items;
}
$parsed_list = parseFtpRawList($file_list);
foreach ($parsed_list as $item) {
echo ($item['is_dir'] ? "[DIR] " : "[FILE] ") . htmlspecialchars($item['name']) . "<br>";
}
?>
အသုံးပြုသူကလစ် နှိပ်. directory name ပေါ်တွင်အခြေခံသည့်လမ်းကြောင်းများကိုလုပ်ဆောင်နိုင်ပြီး recursive browsing ကိုထောက်ပံ့သည်။
<?php
// သွား GET လက်ရှိလမ်းညွှန်ရရှိရန် parameters တွေကို
$current_dir = isset($_GET['dir']) ? $_GET['dir'] : "/";
// လမ်းကြောင်းဖြတ်ကျော်လမ်းကြောင်းကိုရှောင်ကြဉ်ပါ
$current_dir = str_replace(["..", "//"], "", $current_dir);
$file_list = ftp_rawlist($conn_id, $current_dir);
$parsed_list = parseFtpRawList($file_list);
echo "<h2>မာတိကာ: " . htmlspecialchars($current_dir) . "</h2>";
echo "<ul>";
// 上级မာတိကာ链接
if ($current_dir !== "/") {
$parent_dir = dirname($current_dir);
if ($parent_dir == "\\") $parent_dir = "/";
echo '<li><a href="?dir=' . urlencode($parent_dir) . '">[..]</a></li>';
}
foreach ($parsed_list as $item) {
if ($item['is_dir']) {
echo '<li>[DIR] <a href="?dir=' . urlencode(rtrim($current_dir, "/") . "/" . $item['name']) . '">' . htmlspecialchars($item['name']) . '</a></li>';
} else {
echo '<li>[FILE] ' . htmlspecialchars($item['name']) . '</li>';
}
}
echo "</ul>";
?>
browsing ပြီးနောက် connection ကိုပိတ်ရန်မမေ့ပါနှင့်။
<?php
ftp_close($conn_id);
?>
အထက်ပါအဆင့်များမှတဆင့် PHP ကို အခြေခံ. ရိုးရိုး FTP ဖိုင် browser ကိုဖြည့်စွက်သည်။
Connect နှင့် FTP server သို့ဝင်ရောက်ပါ
Directory အကြောင်းအရာရရန် FTP_RAWLIST ကို သုံးပါ
ဖိုင်များကို directory များမှခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ခွဲခြားခြင်း
browsing directory switching ကိုအကောင်အထည်ဖော်ပါ
ဖိုင်ဒေါင်းလုပ်, ဖျက်ခြင်း, တင်ခြင်းစသည်တို့စသည့်ဤအခြေခံအပေါ် အခြေခံ. လုပ်ဆောင်ချက်များကိုထပ်မံချဲ့ထွင်နိုင်သည်။