<?php
// ফোল্ডার এবং ফাইলের জন্য আইকন নির্ধারণ
function getIcon($filename, $isFolder) {
    if ($isFolder) return "📂";
    
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    
    // বিশেষ ফাইলের নাম
    if ($filename == '.htaccess') return "⚙️";
    if ($filename == 'robots.txt') return "📄";
    if ($filename == 'package.json') return "📦";
    
    // এক্সটেনশন অনুযায়ী আইকন
    switch (strtolower($ext)) {
        case 'php': return "📄"; // বা 🐘
        case 'html': return "📄"; // বা 🌐
        case 'css': return "🎨";
        case 'js': return "📜";
        case 'zip':
        case 'rar': return "📦";
        case 'jpg':
        case 'png':
        case 'jpeg':
        case 'gif': return "🖼️";
        case 'txt': return "📝";
        default: return "📄";
    }
}

// রিকার্সিভ ফাংশন যা ফোল্ডার স্ক্যান করবে
function listFolderFiles($dir, $prefix = '') {
    $ffs = scandir($dir);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);
    
    // নিজের ফাইলটি হাইড করার জন্য (অপশনাল)
    if(($key = array_search('structure.php', $ffs)) !== false) {
        unset($ffs[$key]);
    }

    // সুন্দর দেখানোর জন্য রি-ইনডেক্স
    $ffs = array_values($ffs);

    foreach($ffs as $index => $ff){
        $path = $dir.'/'.$ff;
        $isFolder = is_dir($path);
        $icon = getIcon($ff, $isFolder);
        
        // শেষ আইটেম কিনা চেক করা (ট্রি স্ট্রাকচারের দাগের জন্য)
        $isLast = ($index === count($ffs) - 1);
        $connector = $isLast ? "└── " : "├── ";
        
        echo $prefix . $connector . $icon . " " . $ff . "\n";
        
        if($isFolder) {
            // সাব-ফোল্ডারের জন্য প্রিফিক্স ঠিক করা
            $newPrefix = $prefix . ($isLast ? "    " : "│   ");
            listFolderFiles($path, $newPrefix);
        }
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Structure Generator</title>
    <style>
        body { background-color: #1e1e1e; color: #d4d4d4; font-family: 'Courier New', Courier, monospace; padding: 20px; }
        .container { max-width: 800px; margin: 0 auto; }
        .output-box { background: #252526; padding: 20px; border-radius: 8px; border: 1px solid #333; white-space: pre; overflow-x: auto; }
        h2 { color: #61dafb; }
        button {
            background-color: #4CAF50; color: white; padding: 10px 20px; border: none;
            border-radius: 5px; cursor: pointer; font-size: 16px; margin-bottom: 10px;
        }
        button:hover { background-color: #45a049; }
        .root-folder { font-weight: bold; color: #E8B931; }
    </style>
</head>
<body>

<div class="container">
    <h2>📂 Project Structure Generator</h2>
    <button onclick="copyToClipboard()">📋 Copy Structure</button>
    
    <div class="output-box" id="structureOutput"><span class="root-folder">📂 public_html</span>
<?php
    // বর্তমান ডিরেক্টরি স্ক্যান শুরু
    listFolderFiles('.');
?>
    </div>
</div>

<script>
    function copyToClipboard() {
        const range = document.createRange();
        range.selectNode(document.getElementById("structureOutput"));
        window.getSelection().removeAllRanges(); 
        window.getSelection().addRange(range); 
        document.execCommand("copy");
        window.getSelection().removeAllRanges();
        alert("Structure Copied! ✅");
    }
</script>

</body>
</html>