✦ Preferences saved
DOCS
// PHP File Manager · v1.0.0 · Documentatie

de Tyrus Angel

Un manager de fisiere PHP profesional intr-un singur fisier, construit pentru dezvoltatori & administratori de sistem care cer putere reala fara dependente inutile. Urci un fisier. Fara Composer. Fara npm. Fara baza de date.

v1.0.0 Single File PHP 8.0 → 8.4 CodeMirror 5 EN / RO / DK Zero Dependencies Commercial License
🚀

Instalare

1
Urca manager.php pe serverul tau — oriunde in radacina web
2
Deschide-l in browser
3
Completeaza setup-ul de configurare unic
4
Gata — esti inauntru
Fara dependente. Fara composer install. Fara npm. Fara baza de date. Fara modificari .htaccess. Configuratia stocata automat in writable/.manager_config.
🛸

Prima Rulare — Setup de Configurare

La prima lansare, managerul afiseaza un setup complet de configurare cu un fundal intunecat cinematic — SVG animat cu stele, linii de constelatie, trei inele geometrice rotative si numele de brand personal TYRUS si ANGEL luminand pe fiecare parte.

① Parola de Acces
  • Minimum 8 caractere
  • Indicator live rezistenta parola cu 7 criterii de evaluare
  • Indicator live de potrivire parola intre ambele campuri
  • Buton “Sugereaza parola puternica” — genereaza automat o parola sigura
  • Comutator afisare/ascundere pe ambele campuri
② URL Site
  • URL complet — folosit de butonul Previzualizare si la curatarea cache-ului
  • Validare URL inline
  • Sfat logo: scrie cu majuscula fiecare cuvant din domeniu pentru efect logo multicolor
③ Spatiu Disk Hosting
  • Butoane predefinite: 10 / 20 / 50 / 100 / 200 GB (desktop), grila 3 coloane (mobil)
  • Input GB personalizat cu butoane spinner ▲▼
  • Afisare live conversie bytes
Selector limba — filele EN / RO / DK sincronizate cu animatia de stralucire a chenarului cardului printr-o bucla continua requestAnimationFrame.
Animatie trimitere: La o trimitere valida, apare un overlay sci-fi cu o bara de progres animata in 6 etape, tradusa in toate 3 limbile, rulata 2,2 secunde inainte de POST-ul efectiv. Pattern PRG complet — erorile supravietuiesc redirectarii fara probleme de re-trimitere.
Configuratia stocata ca JSON — parola hashed bcrypt, URL site, spatiu disk in bytes, data configurarii, limba.
🔐

Autentificare & Securitate

  • Parola verificata fata de hash-ul bcrypt din writable/.manager_config
  • Protectie brute-force — IP urmarit in writable/.login_attempts
  • Incercare 1: “Ceva nu pare in regula aici.”
  • Incercare 2: “Interesant... continui?”
  • Incercare 3: IP blocat permanent — “Ne vedem intr-o alta viata.” — scris in writable/.blocked_ips
  • Expirare sesiune — 30 minute inactivitate → redirectare automata la login
  • Bara de avertizare apare cu 2 minute inainte de expirare cu numaratoare inversa live
  • Butonul “Extinde” reseteaza simultan timer-ul JS si sesiunea PHP
  • Evenimentele de activitate (mousemove, keydown, click, scroll) reseteaza contorul de inactivitate
  • Toate actiunile inregistrate cu timestamp in writable/.activity_log — adresa IP inregistrata doar pentru LOGIN si LOGOUT
👁

Ecran Blocare IP

Cand un IP este blocat, in loc de o pagina de eroare obisnuita, se afiseaza o experienta animata in panza pe tot ecranul:

  • Fata umana desenata procedural folosind ctx.bezierCurveTo si ctx.ellipse
  • Ochi care urmaresc cursorul in timp real — pupilele urmaresc mouse-ul cu miscare limitata
  • Clipire aleatorie cu temporizare variabila (randomizata 180–480 cadre)
  • Efect glitch periodic — deplasare sectiune getImageData/putImageData + nuanta rosie
  • Scanlinii CRT — linii orizontale la intervale de 4px pe intreaga panza
  • Vigneta radiala — margini intunecate care se inchid
  • Cursor personalizat — cursorul implicit ascuns, inlocuit cu un punct rosu mic
  • Blocat: click dreapta, F12, Ctrl+U/I/S, Escape, scroll
  • Mesaje cu aparitie progresiva (intarzieri de 2s si 5s)
  • Mouse paraseste fereastra: culoarea textului se schimba + spatiul dintre litere se extinde
  • Animatie subtila de respiratie pe elementul body
🖥

Interfata Manager

Bara Antet
  • Logo dinamic — generat din URL-ul site-ului. Fiecare cuvant colorat diferit. Majusculele in URL = culoare separata per cuvant
  • Bara utilizare disk — bara vizuala care arata spatiul folosit / total cu valori exacte MiB/GiB. Cache actualizat la fiecare 5 minute
  • Selector animat de limba — pilula aluneca lin intre EN / RO / DK (cubic-bezier). Zero reincarcari pagina — interfata completa re-randata prin applyUiLang(). Pe mobil: butoane simple cu chenar
  • Butoane antet: 📋 Jurnal · ⚠ Erori · 🐘 PHP · ⌨ Scurtaturi · 🔓/🔒 Root OFF/ON · ▶ Previzualizare · 💾 Salveaza · Iesire
Bara de Unelte
  • Navigare — ← Inapoi / → Inainte cu istoric complet. Butoane dezactivate corect la limitele istoricului
  • Breadcrumb — segmente de cale clicabile pentru navigare rapida
  • Cautare fisiere — cautare dupa numele fisierului (max 100 rezultate, fara distinctie majuscule, recursiva)
  • In fisiere — comutator pentru panoul de cautare in continut
  • Folder Nou / Fisier Nou — modal cu camp pentru nume
Bara Laterala (Panel Stanga)
  • Redimensionabil — tragere chenar (min 160px, max 520px). Persistat in localStorage + sessionStorage. Dublu-click = resetare la 270px
  • FISIERE SERVER — arbore complet de fisiere/foldere cu iconite de tip
  • Favorite ⭐ — marcheaza/demarcheaza orice fisier sau folder. Stocat pe server. Iconita stea SVG inline in lista
  • Selectie multipla — casute de selectie + Selecteaza Tot. In lot: ZIP · Descarca · Redenumeste · Sterge
  • ZIP in lot — creaza o arhiva cu nume din elementele selectate
  • Descarcare in lot — selectate ca ZIP, transmise direct in browser (construit prin tempnam, sters imediat dupa transfer)
  • Redenumire multipla — setup de redenumire in lot pentru fisierele selectate
  • Zona upload — trage & elibereaza sau click. Modal conflict: Inlocuieste / Pastreaza ambele (auto-numerotate) / Anuleaza
  • Input cautare continut — cauta in interiorul fisierelor din bara laterala
Meniu Contextual (Click dreapta / Apasare lunga)
Edit · Preview · Open folder · Download · Rename · ZIP/Backup · Extract here · Permissions (chmod) · Delete · Add to Favorites / Remove from Favorites
📝

Editor de Cod

Construit pe CodeMirror 5 cu 75+ scripturi CDN. Tema: Dracula dark.

107 Limbaje Suportate
PHP · HTML · CSS · SCSS · LESS · Sass · Stylus · JavaScript · TypeScript · JSX · TSX · JSON · JSON5 · JSONC · XML · SVG · SQL · MySQL · PostgreSQL · SQLite · Markdown · Shell/Bash · Zsh · Fish · Ksh · YAML · Python · Ruby · Go · Rust · C · C++ · C# · Java · Kotlin · Swift · Dart · Lua · Perl · R · Scala · Erlang · Haskell · F# · Clojure · Lisp · Dockerfile · NGINX · INI · TOML · Twig · Handlebars · Jinja2 · Django · Vue · CoffeeScript · and more

Detectie speciala dupa nume fisier: .htaccess → shell · .env → shell · Dockerfile → dockerfile · Makefile → shell · .gitignore → shell · .babelrc / .eslintrc → JSON

Functii Editor
  • Potrivire paranteze · Auto-inchidere paranteze · Evidentierea liniei active
  • Pliere cod — foldGutter cu 4 addon-uri de pliere (acolada, indentare, XML, comentariu)
  • Autocompletare — 5 motoare de sugestii (anyword, JS, CSS, HTML, XML). Intarziere 400ms, min 3 caractere, suprimata in siruri/comentarii. Ctrl+Space = manual
  • Comentare/decomentareCtrl+/
  • Control marime font — A− / A+ in bara de jos
  • Scrollbar-uri personalizate — stil macOS (chenar transparent 3px)
  • Previzualizare imagine — jpg, jpeg, png, gif, webp, svg, ico afisate inline in loc de editor
File
  • Mai multe fisiere deschise simultan
  • Reordonare prin drag & drop — indicator de plasare stanga/dreapta cu box-shadow violet
  • Punct modificat — indicator vizual cand fisierul are modificari nesalvate
  • Meniu contextual fila (click dreapta): Inchide / Inchide Celelalte / Inchide Nemodificate / Inchide Tot
  • Avertisment modificari nesalvate la inchidere
Gaseste & Inlocuieste
  • Evidentiaza toate potrivirile simultan cu markText
  • Potrivire activa cu culoare diferita — afisaj contor: 3 / 12
  • Navigare: Enter (urmatorul) / Shift+Enter (anteriorul)
  • Inlocuieste Unul → / Inlocuieste Tot ⟳
🔬

Analizor Cod / Linter

Se deschide ca panou lateral langa editor prin butonul 🔍 Analizeaza. Suporta: .php · .css · .scss · .less · .js · .ts · .jsx · .tsx

Marcatori vizuali pe linie — probleme marcate direct in editor cu clase codificate prin culori. Click pe problema in panou → setCursor + scrollIntoView + flash evidentiere 1,5s pe linie.
Detectie fisier minificat — dupa nume fisier (.min.js, .bundle.js, etc.) sau continut (linie medie >300 caractere). Afiseaza mesaj prietenos cu buton “Analizeaza oricum →”.
Verificari PHP
VerificareSeveritateDescriere
Sintaxa PHP🔴 errorphp -l prin shell_exec sau fallback token_get_all() ParseError
var_dump / print_r lasat in cod🟡 warningOutput debug neeleminat
$_SERVER['PHP_SELF'] fara htmlspecialchars()🟡 warningVulnerabilitate XSS
die()/exit() cu sir hardcodat🟡 warningExpune informatii server in productie
$_POST/$_GET/$_REQUEST fara isset()🟡 warningConstient de context — verificate 3 linii sus/jos
Greseli de tipar functii PHP (118 tipare)🔴 errorarray_mpa → array_map, jsno_encode → json_encode, etc.
Definitii de functii duplicate🔴 errorCu referinta la linia primei definitii
return in afara oricarei functii🟡 warningAnaliza structurala a adancimii acoladelor
md5() pentru parole🟡 warningDoar cand e langa contextul password/pass/pwd/hash
TODO / FIXME / HACK🔵 infoTextul complet al comentariului extras
Verificari CSS / SCSS / LESS
VerificareSeveritateDescriere
Proprietate CSS invalida🟡 warning200+ proprietati valide verificate
Greseala de tipar proprietate CSS🟡 warning~150 tipare, sugestie Levenshtein ≤ 3
Valoare de proprietate invalida🟡 warningValoare verificata fata de optiunile valide cunoscute per proprietate
Proprietate duplicata in bloc🟡 warningAceeasi proprietate definita de doua ori in acelasi bloc
Punct si virgula dublu ;;🟡 warningGreseala de tipar frecventa
Verificari JS / TS
VerificareSeveritateDescriere
console.log lasat in cod🔵 infoEliminati inainte de productie
debugger; lasat in cod🟡 warningOpreste executia in browser
typeof comparat cu ==🟡 warningTrebuie folosit ===
Comparatie NaN invalida (=== NaN)🔴 errorFolositi Number.isNaN() sau isNaN()
eslint-disable lasat in cod🔵 infoPoate fi uitat
TODO / FIXME / HACK🔵 infoTextul complet al comentariului extras
Robustete: Limite PCRE 10M, JIT dezactivat, try/catch cu wrap Throwable — nu crapa niciodata. Compatibil PHP 8.0 → 8.4.
📦

Browser ZIP

Click pe orice fisier .zip → se deschide ca panou in locul zonei editorului.

  • Arbore expandabil — ierarhic cu indentare pe nivele
  • Casute de selectie in cascada — selectia folderului = selectia tuturor elementelor copil recursiv. Selectie partiala = fisiere individuale trimise
  • Sortare ierarhica personalizata — foldere primul, fisiere alfabetic
  • Extractie selectiva — eliminare inteligenta prefix, fara cai imbricate nedorite
  • Pre-verificare conflicte — arata exact fisierele care vor fi suprascrise inainte de extractie
  • Extractie prin drag & drop — trage din panoul ZIP pe un folder din panoul de fisiere. Folderul destinatie se evidentiaza la hover
  • Extractie completa — extrage tot continutul dintr-o data

Comparare & Diff

Diff .bak

Fiecare salvare creaza automat .bak. ↕ Diff .bak arata diff vizual cu context de 3 linii. Buton “Restaureaza din .bak” disponibil.

Comparare Paralela
  • Fisier 1: fisierul curent din editor (automat)
  • Fisier 2: click pe orice fisier din bara laterala in timp ce panoul este deschis
  • Statistici: +N adaugate / -N eliminate
  • Codificate prin culori: modificat (chihlimbar/albastru) · adaugat (verde) · eliminat (rosu) · separator (inchis)
  • Derulare independenta per coloana

Redenumire Multipla

  • Controale tipare: Prefix · Sufix · Gaseste · Inlocuieste (toate combinabile)
  • Numerotare automata: 001, 002, 003…
  • Previzualizare live: nume vechi → nume nou per fisier. Inputuri individuale editabile
  • Numere modificate evidentiate in galben
  • Toate redenumirile intr-o singura operatie cu detectie conflicte
📋

Jurnal Activitate

Jurnal Activitate

Fiecare actiune inregistrata: LOGIN · LOGOUT · SAVE · UPLOAD · DELETE · RENAME · NEW FOLDER · NEW FILE · ZIP · UNZIP · UNZIP-SELECTIVE · CHMOD · CLEAR CACHE · MULTI-RENAME — cu timestamp, tip actiune, cale fisier. Adresa IP inregistrata doar pentru LOGIN si LOGOUT. Stocat in writable/.activity_log ca JSON. Poate fi sters din modal.

Log Erori PHP
  • Parseaza format CI4 (LEVEL - DATE --> MSG) si standard PHP ([date] PHP Fatal error:) formate log
  • Reconstruieste trace-uri de stiva complete
  • Grupate dupa severitate: Fatal · Eroare · Avertisment · Nota · Info
  • Restringe/extinde per grup
  • Stack trace-uri afisate inline cu evidentierea APPPATH/SYSTEMPATH
  • Ordine cronologica inversa
🔓

Mod Root

Root OFF (implicit) — navigare limitata la radacina documentelor (public_html).

Root ON — navigheaza deasupra public_html spre radacina serverului. Acces la loguri, configuratii, fisiere din afara radacinii web. Avertisment afisat ca notificare toast si butonul din antet se schimba in 🔑 Root ON cand este activ.

🔧

API Backend AJAX

Toate operatiunile prin manager.php?action=ACTION:

API BackendDescriere
listContinut director — nume, tip, marime, modificat, cale, permisiuni
readContinut fisier (max 5MB)
readimageImagine ca URI base64 (jpg, png, gif, webp, svg, ico)
saveSalveaza fisier — creaza automat .bak al versiunii anterioare
uploadUpload — moduri: intreaba / inlocuieste / copiaza (auto-numerotate)
downloadDescarca un singur fisier prin HTTP
download-zipMai multe fisiere ca ZIP — construit prin tempnam, transmis in browser, sters imediat dupa
deleteSterge fisiere/foldere — recursiv, backup .bak optional
renameRedenumeste — detectie conflicte, suprascriere fortata optionala
newfolderCreaza director (mkdir recursiv)
newfileCreaza fisier gol
zipCreaza arhiva ZIP pe server
zip-listContinut ZIP ca arbore ierarhic
unzipExtrage arhiva ZIP completa
unzip-selectiveExtrage elemente selectate cu eliminare inteligenta prefix
unzip-checkPre-verificare conflicte extractie inainte de extractie
chmodSchimba permisiunile fisierului/folderului
searchCautare recursiva dupa numele fisierului (max 100 rezultate)
searchcontentText in interiorul fisierelor (max 50 fisiere × 5 potriviri)
diskusageUtilizare disk — parcurge 2 niveluri deasupra docroot, cache 5 minute
diffFisier vs .bak cu context de 3 linii
compareDiff paralel intre orice doua fisiere
lintAnaliza PHP/CSS/JS — array structurat de probleme
errorlogParseaza log-ul de erori PHP (format CI4 + standard)
phpinfoInfo PHP parsat — versiune, extensii, setari
getfavoritesListeaza caile adaugate la favorite
togglefavoriteAdauga sau elimina din favorite
getlogIntrari jurnal activitate
clearlogCurata jurnalul de activitate
clearcacheHeader purge LiteSpeed + stergere folder writable/cache CI4
getdocrootCalea radacinii documentelor de server
multirenameRedenumire in lot cu detectie conflicte
🌐

Multilingv

240+ chei de traducere per limba. Toate textele din interfata manager traduse — EN / RO / DK.

  • Schimbare fara reincarcarea paginii — switchLang()applyUiLang() + loadFiles() + renderTabs()
  • Toate elementele DOM actualizate: butoane, modaluri, placeholder-uri, cheatsheet (complet regenerat), sugestii ZIP, bara timeout
  • Limba persistata in cookie + writable/.manager_config
  • Comutator pilula animat (desktop): glisare cubic-bezier, fara tranzitie la initializare pentru a evita flash
🇬🇧 English     🇷🇴 Romanian     🇩🇰 Danish
📱

Mobil

Punct de rupereComportament
< 425pxJurnal ascuns, bara disk ascunsa, butoane micro 8px, selector limba simplu
425–599pxJurnalul apare primul (order:-1) inainte de Erori
600–1023pxSelector limba static in antet (fara pozitionare absoluta)
1024–1100pxSelector limba static, bara de unelte compacta
> 1100pxLayout desktop complet, pilula animata centrata absolut
  • Sertar bara laterala — aluneca din stanga, overlay pentru inchidere, se inchide automat la deschidere fisier / ZIP / imagine, ramane deschis la navigare in folder
  • Apasare lunga 500ms — meniu contextual la pozitia de atingere, feedback haptic (navigator.vibrate(30)), misca degetul = anuleaza
  • Sistem file — latime maxima 90px, puncte de suspensie, inchidere mereu vizibila, scroll orizontal
  • Diff/Comparare — ascuns sub 768px (spatiu insuficient pentru vizualizare split)

Comenzi Rapide de la Tastatura

ScurtaturaActiune
Ctrl + SSalveaza fisierul curent
Ctrl + WInchide fila curenta
Ctrl + ZAnuleaza
Ctrl + YRefacere
Ctrl + FGaseste in fisier
Ctrl + HGaseste & Inlocuieste
Ctrl + /Comenteaza / decomenteza linia
TabIndenteaza selectia
Ctrl + SpaceAutocompletare manuala
EscapeInchide autocompletare / modal
A+ / A−Mareste / micsoreaza dimensiunea fontului
Right-click fileMeniu contextual
Right-click tabMeniu contextual fila
Drag tabReordoneaza filele
Drag sidebar borderRedimensioneaza bara laterala
Double-click borderReseteaza latimea barei laterale la valoarea implicita
📋

Cerinte

  • PHP 8.0 sau mai nou — testat pana la PHP 8.4 (necesita PHP 8.0+ pentru str_starts_with())
  • Extensia ZipArchive — disponibila pe majoritatea hostingurilor shared by default
  • Directorul writable/ trebuie sa fie cu drepturi de scriere — creat automat la prima rulare
  • Fara Composer · Fara npm · Fara baza de date · Fara framework
Vezi Preturi → ← Inapoi la tyrus.dk v1.0.0 · Licenta Comerciala · © 2025 A. Angel Țîru / Tyrus