isFile() && in_array($file->getExtension(), $validExtensions)) {
$filePath = $file->getPathname();
if (is_readable($filePath)) {
$content = fopen($filePath, 'r');
if ($content) {
while (($line = fgets($content)) !== false) {
if (strpos($line, $kata) !== false) {
$relativePath = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filePath);
$result[] = array(
'path' => $relativePath,
'permissions' => substr(sprintf('%o', fileperms($filePath)), -4)
);
break;
}
}
fclose($content);
}
}
}
}
return $result;
}
function getInfoPemilik($path) {
$owner = posix_getpwuid(fileowner($path))['name'];
$group = posix_getgrgid(filegroup($path))['name'];
return array('owner' => $owner, 'group' => $group);
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['delete']) && !empty($_POST['delete'])) {
$fileToDelete = $_SERVER['DOCUMENT_ROOT'] . $_POST['delete'];
if (file_exists($fileToDelete) && is_file($fileToDelete) && pathinfo($fileToDelete, PATHINFO_EXTENSION) === 'php') {
if (unlink($fileToDelete)) {
echo "
File '$fileToDelete' berhasil dihapus.";
} else {
echo "Gagal menghapus file '$fileToDelete'.";
}
}
}
if (isset($_POST['chmod']) && !empty($_POST['chmod'])) {
$fileToChmod = $_SERVER['DOCUMENT_ROOT'] . $_POST['chmod'];
if (file_exists($fileToChmod) && is_file($fileToChmod) && pathinfo($fileToChmod, PATHINFO_EXTENSION) === 'php') {
$newPermissions = octdec($_POST['permissions']);
if (chmod($fileToChmod, $newPermissions)) {
echo "chmod berhasil pada file '$fileToChmod' ";
} else {
echo "gagal Chmod File pada'$fileToChmod' ";
}
}
}
if (isset($_POST['bulkdelete'])) {
$kataCari = $_POST['bulkdelete'];
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
$currentFile = $_SERVER['SCRIPT_FILENAME'];
$hasilPencarian = cariKataDalamFile($kataCari, $documentRoot);
$fileDeleted = false;
$deleteFailed = false;
foreach ($hasilPencarian as $fileInfo) {
$fileToDelete = $documentRoot . $fileInfo['path'];
if ($fileToDelete !== $currentFile && file_exists($fileToDelete) && is_file($fileToDelete) && pathinfo($fileToDelete, PATHINFO_EXTENSION) === 'php') {
if (unlink($fileToDelete)) {
$fileDeleted = true;
} else {
$deleteFailed = true;
}
}
}
if ($fileDeleted) {
echo "Semua File berhasil dihapus.";
} elseif ($deleteFailed) {
echo "Gagal menghapus beberapa file.";
}
}
if (isset($_POST['bulkchmod'])) {
$kataCari = $_POST['bulkchmod'];
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
$currentFile = $_SERVER['SCRIPT_FILENAME'];
$hasilPencarian = cariKataDalamFile($kataCari, $documentRoot);
$totalFiles = count($hasilPencarian);
$fileChmodded = false;
$chmodFailed = false;
foreach ($hasilPencarian as $fileInfo) {
$fileToChmod = $documentRoot . $fileInfo['path'];
if ($fileToChmod !== $currentFile && file_exists($fileToChmod) && is_file($fileToChmod) && pathinfo($fileToChmod, PATHINFO_EXTENSION) === 'php') {
$newPermissions = octdec($_POST['permissions']);
if (chmod($fileToChmod, $newPermissions)) {
$fileChmodded = true;
} else {
$chmodFailed = true;
}
}
}
if ($fileChmodded) {
echo "Semua File berhasil diubah permissions.";
} elseif ($chmodFailed) {
echo "Gagal mengubah permissions beberapa file.";
}
}
}
if (isset($_GET['find']) && !empty($_GET['find'])) {
$kataCari = $_GET['find'];
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
$hasilPencarian = cariKataDalamFile($kataCari, $documentRoot);
$totalFiles = count($hasilPencarian);
$progressStep = 100 / $totalFiles;
$currentProgress = 0;
if (empty($hasilPencarian)) {
echo "Kata '$kataCari' tidak ditemukan dalam file-file PHP di direktori dan subdirektori.";
} else {
echo "";
echo "";
echo "";
echo "
";
echo "
";
echo "";
echo "
";
echo "";
echo "-";
echo "";
echo "";
echo "";
echo "File Path | Owner | Group | Permissions | Action |
";
foreach ($hasilPencarian as $fileInfo) {
$file = $fileInfo['path'];
$permissions = $fileInfo['permissions'];
$infoPemilik = getInfoPemilik($_SERVER['DOCUMENT_ROOT'] . $file);
$owner = $infoPemilik['owner'];
$group = $infoPemilik['group'];
$deleteUrl = $_SERVER['PHP_SELF'] . "?delete=" . urlencode(str_replace($_SERVER['DOCUMENT_ROOT'], '', $file));
$chmodUrl = $_SERVER['PHP_SELF'] . "?chmod=" . urlencode(str_replace($_SERVER['DOCUMENT_ROOT'], '', $file));
echo "";
echo "$file | ";
echo "$owner | ";
echo "$group | ";
echo "$permissions | ";
echo "";
echo "||";
echo " | ";
echo "
";
$currentProgress += $progressStep;
echo "";
flush();
ob_flush();
usleep(100000);
}
echo "
";
echo "";
echo "
";
}
}
?>