✦ Preferințe salvate
DOCS
// PHP File Manager · v1.0.7 · Documentație

PHP File Manager

de Tyrus Angel

Un manager profesional de fișiere PHP într-un singur fișier, pentru dezvoltatori și administratori de sistem. Licențiere gratuită asociată domeniului, fără Composer, fără npm și fără instalare de bază de date.

v1.0.7 Single File PHP 8.0+ CodeMirror 5 EN / RO / DK No Composer / npm No runtime CDN Gratuit · Asociat domeniului
🚀

Instalare

1
Încarcă manager.php în dosarul pe care vrei să îl administrezi din rădăcina web
2
Deschide manager.php în browser
3
Activează licența gratuită emisă pentru domeniul curent
4
Finalizează configurarea inițială și alege parola de acces
Instalare dintr-un singur fișier. Nu sunt necesare Composer, npm sau o bază de date. Starea privată a managerului este păstrată automat în .tyrusmanager, în afara rădăcinii web. Setări → Backupuri folosește implicit modul Auto: o verificare discretă, pe aceeași origine, testează dacă un fișier temporar .bak inofensiv poate fi citit prin HTTP. Dacă este blocat, backupurile rămân lângă fișierul original pentru vizibilitate maximă; dacă este expus sau verificarea nu poate fi finalizată, backupurile noi folosesc o cale oglindită în .tyrusmanager/backups. Nu se creează catalog sau fișier separat de evidență, iar backupurile existente lângă fișiere nu sunt mutate automat.
Structură recomandată
/public_html/
  manager.php
  app/
  assets/

/private-or-parent-storage/
  .tyrusmanager/
    .manager_config
    .activity_log
    .login_attempts
    .blocked_ips
    backups/
ExempluPune manager.php în /public_html/tools/ pentru a administra acel subarbore fără framework sau manager de pachete.
🔑

Activare gratuită

Modelul actual de licențiere: PHP File Manager este gratuit și asociat domeniului. O licență gratuită deja activată pentru un domeniu rămâne gratuită pentru acel domeniu, conform termenilor acceptați la activare.

Activarea are loc înaintea configurării inițiale. Versiunea descărcabilă validează cheia de licență pentru domeniul curent și păstrează starea locală a licenței în spațiul privat al managerului.

1
Deschide fișierul manager.php descărcat pe domeniul unde va fi folosit.
2
Introdu cheia de licență gratuită emisă pentru acel domeniu și alege Activează licența.
3
După validarea reușită, finalizează asistentul de configurare. Nepotrivirea domeniului, suspendarea accesului și erorile de integritate rămân erori explicite și nu sunt ocolite.
Ai nevoie de o cheie de licență? Obține Tyrus gratuit. Verificarea prin email emite o cheie gratuită asociată domeniului introdus.
🛸

Prima rulare: activarea licenței și configurarea

La prima lansare, versiunea licențiată validează licența pentru domeniul curent, apoi deschide configurarea inițială. Ecranul de configurare păstrează interfața cinematică întunecată, fundalul SVG animat și identitatea vizuală Tyrus.

① Parola de acces
  • Minimum 15 caractere
  • Indicator live pentru puterea parolei, cu evaluare orientată în primul rând după lungime
  • Indicator live pentru potrivirea parolelor între cele două câmpuri
  • Sugerează parolă puternică generează o parolă criptografic sigură folosind Web Crypto
  • Afișează sau ascunde oricare dintre câmpurile de parolă
② URL Site
  • URL-ul complet al site-ului, folosit de Previzualizare și de acțiunea pentru golirea cache-ului site-ului
  • Validare URL direct în formular
  • Sfat pentru logo: scrie fiecare cuvânt din domeniu cu inițială mare pentru a separa culorile în logo-ul dinamic
③ Spațiu pe disc pentru hosting
  • Valori presetate: 10 / 20 / 50 / 100 / 200 GB, plus o valoare personalizată
  • Câmp personalizat pentru GB, cu controale de incrementare
  • Conversie live din GB în bytes
Selector de limbă: EN / RO / DK este disponibil direct în interfața de configurare.
Trimiterea configurării: validarea rulează înainte de POST, iar fluxul PRG previne retrimiterea accidentală a formularului după redirectări.
Configurația este stocată ca JSON în fișierul privat .tyrusmanager/.manager_config: hash bcrypt al parolei, URL-ul site-ului, cota de disc, data configurării și limbă.
ExempluPentru https://example.com, setează URL-ul site-ului exact la originea HTTPS și alege limita de disc care corespunde contului de găzduire administrat.
🔐

Autentificare & Securitate

  • Parola este verificată folosind hashul bcrypt din fișierul privat .tyrusmanager/.manager_config
  • Schimbă parola din Setări → Securitate. Parola curentă este reverificată cu password_verify(), încercările sunt limitate, iar noul hash bcrypt este scris atomic în fișierul privat .tyrusmanager/.manager_config.
  • Generator de parole integrat, cu lungime reglabilă între 16 și 64 de caractere, aleatoriu Web Crypto și indicator live orientat în primul rând după lungime
  • Protecție anti brute-force: starea încercărilor eșuate este păstrată privat în .tyrusmanager/.login_attempts
  • Încercarea 1: “Ceva nu pare în regulă aici.”
  • Încercarea 2: “Interesant... continui?”
  • Încercarea 3: IP-ul este blocat timp de 15 minute și înregistrat în fișierul privat .tyrusmanager/.blocked_ips.
  • Expirarea sesiunii: 30 de minute de inactivitate, apoi revenire automată la autentificare
  • O bară de avertizare apare cu 2 minute înainte de expirare și afișează numărătoarea inversă
  • Controlul Extinde reîmprospătează atât contorul de inactivitate din browser, cât și sesiunea PHP
  • Activitatea mouse-ului, tastaturii, clicurile și derularea reîmprospătează contorul de inactivitate din browser
  • Acțiunile sunt înregistrate cu marcă temporală în fișierul privat .tyrusmanager/.activity_log; adresa IP este păstrată doar pentru LOGIN și LOGOUT
ExempluTrei autentificări eșuate blochează IP-ul timp de 15 minute; activitatea autentificată folosește apoi expirarea normală după 30 de minute de inactivitate.
👁

Ecran de blocare IP

În timpul blocării temporare a unui IP, pagina normală de autentificare este înlocuită de un ecran canvas dedicat accesului blocat:

  • Față umană desenată procedural folosind ctx.bezierCurveTo și ctx.ellipse
  • Ochi care urmăresc cursorul în timp real; pupilele urmăresc mouse-ul cu mișcare limitată
  • Clipire aleatorie cu temporizare variabilă (randomizată 180–480 cadre)
  • Efect glitch periodic; deplasare secțiune getImageData/putImageData + nuanță roșie
  • Linii CRT; linii orizontale la intervale de 4px pe întreaga pânză
  • Vignetă radială; marginile întunecate se închid
  • Cursor personalizat; cursorul implicit este ascuns și înlocuit cu un punct roșu mic
  • Blocat: clic dreapta, F12, Ctrl+U/I/S, Escape, derulare
  • Mesaje afișate progresiv, cu întârzieri de 2s și 5s
  • Mouse-ul părăsește fereastra: culoarea textului se schimbă + spațiul dintre litere se extinde
  • Animație subtilă de respirație aplicată elementului body
ExempluCând un IP este blocat temporar, formularul normal de autentificare este înlocuit de ecranul dedicat accesului blocat până la expirarea blocării.
🖥

Interfața managerului

Bara Antet
  • Logo dinamic; generat din URL-ul site-ului. Fiecare cuvânt colorat diferit. Majusculele în URL = culoare separată per cuvânt
  • Bara de utilizare a discului; bara vizuală arată spațiul folosit / total cu valori exacte MiB/GiB. Memoria cache se actualizează la fiecare 30 de minute
  • Selector animat de limbă; pilula alunecă lin între EN / RO / DK (cubic-bezier). Fără reîncărcarea paginii; interfața completă este rerandată prin applyUiLang(). Pe mobil: butoane simple cu chenar
  • Butoane antet: 📋 Jurnal · ⚠ Erori · 🐘 PHP · ⌨ Scurtături · 🔓/🔑 Root OFF/ON · ▶ Previzualizare · 💾 Salvează · Ieșire
Bara de Unelte
  • Navigare; ← Înapoi / → Înainte cu istoric complet. Butoane dezactivate corect la limitele istoricului
  • Breadcrumb; segmente de cale clicabile pentru navigare rapidă
  • Căutare fișiere; căutare după numele fișierului (max 100 rezultate, fără distincție majuscule, recursivă)
  • În fișiere; comutator pentru panoul de căutare în conținut
  • Dosar nou / Fișier nou; modal cu câmp pentru nume
Bara Laterală (Panou Stânga)
  • Redimensionabil; tragi chenarul între 160px și 520px. Valoarea este păstrată în localStorage și sessionStorage. Dublu-clic resetează la 270px.
  • FIȘIERE SERVER; arbore complet de fișiere și dosare cu iconițe de tip
  • Favorite ⭐; marchează sau demarchează orice fișier ori dosar. Stocate pe server. Iconiță SVG în formă de stea afișată direct în listă
  • Selecție multiplă; căsuțe de selecție + Selectează tot. În lot: ZIP · Descarcă · Redenumește · Șterge
  • ZIP în lot; creează o arhivă cu nume din elementele selectate
  • Descărcare în lot; selectate ca ZIP, transmise direct în browser (construit prin tempnam, șters imediat după transfer)
  • Redenumire multiplă; configurare de redenumire în lot pentru fișierele selectate
  • Zona de încărcare; trage & plasează sau clic. La conflict: Înlocuiește / Păstrează ambele (auto-numerotate) / Anulează
  • Căutare în conținut; caută în interiorul fișierelor din bara laterală
Meniu contextual (Clic dreapta / Apăsare lungă)
Editează · Previzualizează · Deschide · Descarcă · Redenumește · ZIP / Copie de siguranță · Extrage aici · Permisiuni (chmod) · Șterge · Adaugă la Favorite / Scoate din Favorite
ExempluSelectează mai multe fișiere jurnal în bara laterală, creează un ZIP din selecție, apoi deschide alt dosar fără să pierzi filele deja deschise în editor.
📝

Editor de Cod

Construit pe CodeMirror 5. Pachetul editorului este inclus în manager.php și servit de același fișier, fără CDN terț în timpul rulării.

203 de mapări de fișiere verificate
Editorul inclus are 203 de mapări verificate pentru nume/conținut care se rezolvă în 110 moduri CodeMirror înregistrate. Stratul de mapare include extensii și cazuri speciale după nume/conținut.
C · C++ · C# · Java · Clojure · CMake · COBOL · CoffeeScript · Lisp · Crystal · CSS · Cypher · D · Dart · Diff/Patch · Django · Dockerfile · DTD · Elm · Erlang · Fortran · Assembly (GAS) · GFM · Gherkin · Go · Groovy · Handlebars · Haskell · HTML · HTTP · INI · JavaScript · TypeScript · JSON · JSON5 · JSONC · Jinja2 · JSX · TSX · Julia · Kotlin · LESS · LiveScript · Lua · Markdown · Mathematica · F#/OCaml · Modelica · Mscgen · NGINX · NSIS · N-Triples · Octave · Pascal · PEG.js · Perl · PHP · Pig · PowerShell · Properties · Protocol Buffers · Puppet · Python · Q/KDB+ · R · RPM Spec · reStructuredText · Ruby · Rust · SAS · SCSS · Sass · Scala · Scheme · Shell/Bash · Zsh · Fish · Ksh · Csh · Tcsh · Smalltalk · Smarty · SQL · MySQL · PostgreSQL · SQLite · LaTeX · Stylus · Swift · Tcl · Textile · TOML · Turtle (RDF) · Twig · Visual Basic · VBScript · Verilog · VHDL · Vue · WebIDL · XML · SVG · XQuery · YAML · Z80 Assembly

Detecție specială după nume fișier: .htaccess → shell · .env → shell · Dockerfile → dockerfile · Makefile → shell · .gitignore → shell · .babelrc / .eslintrc → JSON

Funcții Editor
  • Potrivire paranteze · Auto-închidere paranteze · Evidențierea 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). Întârziere 400ms, minimum 3 caractere, suprimată în șiruri și comentarii. Ctrl+Space pentru declanșare manuală.
  • Comentare/decomentare; Ctrl+/
  • Control mărime font; A− / A+ în bara de jos
  • Scrollbar-uri personalizate; stil macOS (chenar transparent 3px)
  • Previzualizare imagine; jpg, jpeg, png, gif, webp, svg și ico sunt afișate inline în locul editorului
File
  • Mai multe fișiere deschise simultan
  • Reordonare prin drag & drop; indicator de plasare stânga/dreapta cu box-shadow violet
  • Punct de modificare; indicator vizual când fișierul are modificări nesalvate
  • Meniul contextual al filei (clic dreapta): Închide / Închide celelalte / Închide nemodificate / Închide tot
  • Avertisment modificări nesalvate la închidere
Găsește & Înlocuiește
  • Evidențiază toate potrivirile simultan cu markText
  • Potrivire activă cu culoare diferită; afișaj contor: 3 / 12
  • Navigare: Enter (următorul) / Shift+Enter (anteriorul)
  • Înlocuiește Unul → / Înlocuiește Tot ⟳
ExempluDeschiderea fișierelor Dockerfile, composer.json, app.tsx și schema.sql selectează modul verificat al editorului din maparea nume/conținut, în locul unui singur mod text generic.
🔬

Analizor Cod / Linter

Se deschide ca panou lateral lângă editor prin butonul 🔍 Analizează. Suportă: .php · .css · .scss · .less · .js · .ts · .jsx · .tsx

Marcatori vizuali pe linie; probleme marcate direct în editor cu clase codificate prin culori. Clic pe problemă în panou → setCursor + scrollIntoView + flash evidențiere 1,5s pe linie.
Detecție fișier minificat; după nume fișier (.min.js, .bundle.js, etc.) sau conținut (linie medie >300 caractere). Afișează mesaj prietenos cu buton “Analizează oricum →”.
Verificări PHP
VerificareSeveritateDescriere
Sintaxă PHP🔴 errorphp -l prin shell_exec sau fallback token_get_all() ParseError
var_dump / print_r lăsat în cod🟡 warningIeșire de depanare neeliminată
$_SERVER['PHP_SELF'] fără htmlspecialchars()🟡 warningVulnerabilitate XSS
die()/exit() cu șir hardcodat🟡 warningExpune informații server în producție
$_POST/$_GET/$_REQUEST fără isset()🟡 warningConștient de context; verificate 3 linii sus/jos
Greșeli de tipar funcții PHP (118 tipare)🔴 errorarray_mpa → array_map, jsno_encode → json_encode, etc.
Definiții de funcții duplicate🔴 errorCu referință la linia primei definiții
return în afara oricărei funcții🟡 warningAnaliză structurală a adâncimii acoladelor
md5() pentru parole🟡 warningDoar când e lângă contextul password/pass/pwd/hash
TODO / FIXME / HACK🔵 infoTextul complet al comentariului extras
Verificări CSS / SCSS / LESS
VerificareSeveritateDescriere
Proprietate CSS invalidă🟡 warning350+ proprietăți valide verificate
Greșeală de tipar proprietate CSS🔴 error~160 tipare, sugestie Levenshtein ≤ 3
Valoare de proprietate invalidă🔴 errorValoare verificată față de opțiunile valide cunoscute per proprietate
Proprietate duplicată în bloc🟡 warningAceeași proprietate definită de două ori în același bloc
Punct și virgula dublu ;;🟡 warningGreșeală de tipar frecventă
Verificări JS / TS
VerificareSeveritateDescriere
console.log lăsat în cod🔵 infoEliminați înainte de producție
debugger; lăsat în cod🟡 warningOprește execuția în browser
typeof comparat cu ==🟡 warningTrebuie folosit ===
Comparație NaN invalidă (=== NaN)🔴 errorSe recomandă Number.isNaN() sau isNaN()
eslint-disable lăsat în cod🔵 infoPoate fi uitat
TODO / FIXME / HACK🔵 infoTextul complet al comentariului extras
Robustețe: limite PCRE 10M, JIT dezactivat și protecție cu try/catch pe Throwable. Compatibil PHP 8.0 → 8.4.
ExempluAnalizează un fișier PHP care conține un pattern typo cunoscut: analizorul raportează problema, marchează linia și permite salt direct la ea. Motorul PHP conține 118 pattern-uri typo verificate.
🛡

Moduri de backup

Fiecare salvare poate păstra versiunea anterioară ca .bak. Modul selectat controlează unde sunt scrise backupurile noi; backupurile existente rămân utilizabile când modul este schimbat.

  • Auto — recomandat: după autentificare, o probă pe aceeași origine verifică dacă un .bak temporar inofensiv poate fi citit prin HTTP. Serverele protejate folosesc backupuri lângă original; serverele expuse sau neverificate folosesc spațiul privat.
  • Lângă original: scrie file.ext.bak lângă file.ext. Folosește acest mod numai dacă accesul HTTP direct la fișierele .bak este blocat de server.
  • Spațiu privat: scrie o cale de backup oglindită în .tyrusmanager/backups, în afara rădăcinii web publice. Nu este creat un catalog separat de backupuri.
ExempluEditează /public_html/app/config.php și salvează o dată. În modul lângă original, versiunea anterioară devine /public_html/app/config.php.bak; în modul privat este oglindită sub .tyrusmanager/backups. Diff .bak rezolvă oricare dintre locații.
📦

Navigator ZIP

Clic pe orice fișier .zip → se deschide ca panou în locul zonei editorului.

  • Arbore expandabil; ierarhie cu indentare pe niveluri
  • Căsuțe de selecție în cascadă; selectarea dosarului selectează recursiv toate elementele copil. Selecția parțială trimite numai fișierele alese.
  • Sortare ierarhică personalizată; dosarele primele, fișierele în ordine alfabetică
  • Extracție selectivă; elimină inteligent prefixul pentru a evita căi imbricate nedorite
  • Preverificare conflicte; arată exact fișierele care vor fi suprascrise înainte de extracție
  • Extragere prin drag & drop; trage din panoul ZIP pe un dosar din panoul de fișiere. Dosarul destinație se evidențiază când cursorul trece peste el
  • Extracție completă; extrage întregul conținut dintr-o singură operație
ExempluDeschide release.zip în navigatorul ZIP, inspectează mai întâi arborele, selectează doar config/ și public/, apoi extrage acele intrări în loc să dezarhivezi toată arhiva.
⇄

Comparare & Diff

Diff .bak

Fiecare salvare creează automat un .bak al versiunii anterioare în locația de backup activă. ↕ Diff .bak și restaurarea recunosc transparent atât backupurile de lângă fișier, cât și pe cele private, astfel încât schimbarea locației nu face inutilizabil un backup existent. Dacă un fișier este șters cu opțiunea de backup activă în modul Spațiu privat, copia oglindită rămâne în .tyrusmanager/backups și poate fi accesată cu ROOT ON.

Comparare Paralelă
  • Fișier 1: fișierul curent din editor (automat)
  • Fișier 2: clic pe orice fișier din bara laterală în timp ce panoul este deschis
  • Statistici: +N adăugate / -N eliminate
  • Codificare prin culori: modificat (chihlimbar/albastru) · adăugat (verde) · eliminat (roșu) · separator (închis)
  • Derulare independentă pentru fiecare coloană
ExempluDupă editarea index.php, folosește Diff .bak pentru a compara fișierul curent cu versiunea salvată anterior înainte să decizi dacă restaurezi.
✏

Redenumire multiplă

  • Controale tipare: Prefix · Sufix · Găsește · Înlocuiește; toate pot fi combinate
  • Numerotare automată: 001, 002, 003…
  • Previzualizare live: nume vechi → nume nou pentru fiecare fișier. Câmpurile individuale pot fi editate.
  • Numere modificate evidențiate în galben
  • Toate redenumirile într-o singură operație cu detecție de conflicte
ExempluRedenumește un set selectat de imagini din IMG_*.jpg într-un pattern numerotat precum gallery_001.jpg, verifică previzualizarea, apoi aplică după ce conflictele sunt clare.
📋

Jurnal de activitate

Jurnal de activitate

Fiecare acțiune este înregistrată cu marcă temporală, tipul acțiunii și calea fișierului. LOGIN și LOGOUT înregistrează și adresa IP. Jurnalul JSON privat este stocat în .tyrusmanager/.activity_log, păstrează ultimele 50 de intrări și poate fi golit din panoul Jurnal.

Jurnal de erori PHP
  • Parsează format CI4 (LEVEL - DATE --> MSG) și standard PHP ([date] PHP Fatal error:) formate log
  • Reconstruiește trace-uri de stiva complete
  • Grupate după severitate: Critic/Eroare · Avertisment · Notă/Info
  • Restringe/extinde per grup
  • Stack trace-uri afișate inline cu evidențierea APPPATH/SYSTEMPATH
  • Ordine cronologică inversă
ExempluDacă o salvare eșuează, verifică jurnalul de activitate pentru acțiunea asupra fișierului și panoul de erori PHP pentru eroarea serverului înainte să schimbi permisiuni sau cod.
🔓

Mod Root

Root OFF (implicit); navigare limitată la rădăcina documentelor (public_html).

Root ON; navighează deasupra public_html spre rădăcina serverului. Acces la loguri, configurații și fișiere din afara rădăcinii web. Avertismentul este afișat ca notificare toast, iar butonul din antet se schimbă în 🔑 Root ON când este activ.

ExempluPăstrează ROOT OFF pentru lucrul obișnuit. Activează ROOT ON numai când ai nevoie intenționat de vizualizarea extinsă a rădăcinii sau de un backup privat oglindit, apoi dezactivează-l din nou.
🔧

API AJAX pentru backend

Toate operațiunile folosesc manager.php?action=ACTION:

API BackendDescriere
listConținut director; nume, tip, mărime, modificat, cale, permisiuni
readConținut fișier (max 5MB)
readimageImagine ca URI base64 (jpg, png, gif, webp, svg, ico)
saveSalvează fișierul; creează automat backupul versiunii anterioare în locația activă
uploadUpload; moduri: întreabă / înlocuiește / copiază (auto-numerotate)
downloadDescarcă un singur fișier prin HTTP
download-zipMai multe fișiere ca ZIP; construit prin tempnam, transmis în browser, șters imediat după
deleteȘterge recursiv fișiere/dosare; copia .bak opțională folosește locația de backup activă
renameRedenumește; detectarea conflictelor, suprascriere forțată opțională
newfolderCreează director (mkdir recursiv)
newfileCreează fișier gol
zipCreează arhivă ZIP pe server
zip-listConținut ZIP ca arbore ierarhic
unzipExtrage arhivă ZIP completă
unzip-selectiveExtrage elemente selectate cu eliminare inteligentă prefix
unzip-checkPreverificare conflicte extracție înainte de extracție
chmodSchimbă permisiunile fișierului/dosarului
searchCăutare recursivă după numele fișierului (max 100 rezultate)
searchcontentText în interiorul fișierelor (max 50 fișiere × 5 potriviri)
diskusageUtilizare disc; parcurge maximum 2 niveluri deasupra docroot, cu memorie cache de 30 de minute
diffFișier vs .bak cu context de 3 linii
compareDiff paralel între orice două fișiere
lintAnaliză PHP/CSS/JS; răspuns structurat cu problemele detectate
errorlogParsează log-ul de erori PHP (format CI4 + standard)
clearerrorlogȘterge fișierul de jurnal pentru erorile PHP
phpinfoInfo PHP parsat; versiune, extensii, setări
getfavoritesListează căile adăugate la favorite
togglefavoriteAdaugă sau elimină din favorite
getlogIntrări jurnal de activitate
clearlogCurăță jurnalul de activitate
clearcacheAntet de purge LiteSpeed + ștergerea dosarului writable/cache CI4
getdocrootCalea rădăcinii documentelor de server
multirenameRedenumire în lot cu detecție conflicte
ExempluInterfața folosește acțiuni precum read, save, zip-list, unzip-selective, diff și lint; acestea sunt acțiuni interne ale managerului, nu un API REST public pentru terți.
🌐

Multilingv

416 chei UI pentru fiecare limbă. Toate textele interfeței managerului sunt disponibile în EN / RO / DK.

  • Schimbare fără reîncărcarea paginii; switchLang() → applyUiLang() + loadFiles() + renderTabs()
  • Toate elementele DOM actualizate: butoane, modaluri, placeholder-uri, cheatsheet (complet regenerat), sugestii ZIP, bara timeout
  • Limba este păstrată în cookie și în fișierul privat .tyrusmanager/.manager_config
  • Comutator animat tip pilulă (desktop): glisare cubic-bezier, fără tranziție la inițializare pentru a evita flash
🇬🇧 English     🇷🇴 Romanian     🇩🇰 Danish
ExempluComută EN → RO → DK din antetul managerului: etichetele sunt rerandate fără reîncărcarea completă a paginii, iar limba selectată este păstrată.
📱

Mobil

Punct de rupereComportament
< 425pxJurnal ascuns, bara de disc ascunsă, butoane compacte de 8px, selector de limbă simplu
425–599pxJurnalul apare primul (order:-1) înainte de Erori
600–1023pxSelector limbă static în antet (fără poziționare absolută)
1024–1100pxSelector de limbă static, bară de unelte compactă
> 1100pxLayout desktop complet, cu selectorul animat de limbă centrat absolut
  • Sertar bara laterală; alunecă din stânga, overlay pentru închidere, se închide automat la deschidere fișier / ZIP / imagine, rămâne deschis la navigare în dosar
  • Apăsare lungă 500ms; meniu contextual la poziția atingerii, feedback haptic prin navigator.vibrate(30); mișcarea degetului anulează acțiunea
  • Sistem de file; lățime maximă 90px, puncte de suspensie, închidere mereu vizibilă, derulare orizontală
  • Diff/Comparare; ascuns sub 768px, unde spațiul este insuficient pentru vizualizarea split
ExempluPe telefon, deschide sertarul lateral, apasă lung pe un fișier pentru acțiunile contextuale, deschide-l într-o filă de editor și închide sertarul fără să schimbi fluxul de lucru desktop.
⌨

Comenzi Rapide de la Tastatură

ScurtăturăAcțiune
Ctrl + SSalvează fișierul curent
Ctrl/⌘ + KDeschide paleta de comenzi
Ctrl + WÎnchide fila curentă
Ctrl + ZAnulează
Ctrl + YRefacere
Ctrl + FGăsește în fișier
Ctrl + HGăsește și înlocuiește
Ctrl + /Comentează / decomentează linia
TabIndentează selecția
Ctrl + SpaceAutocompletare manuală
EscapeÎnchide autocompletarea sau modalul
A+ / A−Mărește / micșorează dimensiunea fontului
Right-click fileMeniu contextual
Right-click tabMeniu contextual fila
Drag tabReordonează filele
Drag sidebar borderRedimensionează bara laterală
Double-click borderResetează lățimea barei laterale la valoarea implicită
F1Deschide ghidul de comenzi rapide
Ctrl + QAnalizează fișierul curent
Delete / Shift + DeleteȘterge selecția; Shift+Delete sare peste dialogul de confirmare
ExempluFolosește Ctrl/⌘ + K pentru paleta de comenzi, Ctrl + S pentru salvare și Ctrl + Q pentru analiza fișierului activ fără să părăsești editorul.
📋

Cerințe

  • PHP 8.0 sau mai nou; versiunea actuală este testată până la PHP 8.4 inclusiv
  • ZipArchive este necesar pentru crearea, navigarea și extragerea arhivelor ZIP
  • Este necesar un director privat cu drept de scriere în afara rădăcinii web pentru starea managerului. Managerul creează automat .tyrusmanager când este posibil; TYRUS_MANAGER_STORAGE poate defini o locație explicită.
  • Fără Composer · Fără npm · Fără instalare de bază de date · Fără CDN terț în timpul rulării
ExempluO instalare minimă poate rula pe PHP 8.0+ cu spațiu privat cu drept de scriere. Crearea, navigarea și extragerea ZIP necesită suplimentar extensia PHP ZipArchive.
🛡

Compatibilitate cu scanerele de hosting

manager.php este un instrument legitim de administrare a serverului. Citirea și scrierea fișierelor, uploadurile, lucrul cu arhive, schimbarea permisiunilor, editarea codului sursă și diagnosticarea de server fac parte în mod normal din ceea ce a fost construit să facă. Unele scanere euristice de hosting clasifică software-ul după capabilități, astfel că un build oficial și nemodificat poate fi uneori etichetat drept instrument administrativ sau poate genera un fals pozitiv.

Integritatea release-ului oficial: buildul oficial este întreținut și testat direct de autor. Buildurile licențiate validează blocurile critice protejate față de versiunea canonică lansată în timpul verificărilor de licență. O etichetă atribuită de un scanner pe baza capabilităților nu schimbă originea sau integritatea unui release oficial nemodificat.
  • Folosește sursa oficială: descarcă manager.php direct de pe tyrus.dk, astfel încât să știi exact ce release și ce copie licențiată rulezi.
  • Dacă un scanner îl etichetează: compară-l cu o copie oficială proaspăt descărcată și lasă verificarea de integritate a licenței să confirme blocurile critice protejate față de release-ul canonic.
  • Compatibilitate cu hostingul: dacă furnizorul permite allowlist sau excluderi pentru instrumente administrative cunoscute, aplică excepția numai copiei oficiale verificate furnizate de Tyrus.
  • Raportează compatibilitatea: dacă o copie oficială proaspăt descărcată este clasificată repetat de un scanner de hosting, trimite numele scannerului și eticheta detecției la angel@tyrus.dk, pentru ca nota de compatibilitate să poată fi urmărită și menținută actualizată.
Pentru transparență, cazul Hostinger este documentat separat. O clasificare inițială a scannerului a fost descrisă în termeni mai puternici, iar după o verificare ulterioară Hostinger a corectat formularea și a descris fișierul în categoria sa de instrument administrativ. Cronologia și corespondența completă sunt disponibile în dosarul cazului.
Citește cazul Hostinger documentat →
🧭

Depanare

Pornește de la eroarea exactă afișată de manager. Verificările de mai jos leagă cele mai frecvente probleme de componenta care le controlează în realitate.

  • Activarea eșuează: verifică domeniul afișat de manager, cheia completă și accesul HTTPS outbound din PHP. O cheie asociată domeniului nu este interschimbabilă între domenii diferite.
  • Configurarea nu poate salva: verifică dacă PHP poate crea/scrie locația privată .tyrusmanager sau setează TYRUS_MANAGER_STORAGE către o cale privată cu drept de scriere.
  • Acțiunile ZIP nu sunt disponibile: activează extensia PHP ZipArchive în același runtime care servește manager.php. PHP CLI și PHP-ul serverului web pot încărca extensii diferite.
  • Backup într-o locație neașteptată: verifică Setări → Backupuri. În modul Auto, o probă .bak expusă sau neverificată selectează intenționat spațiul privat.
  • Revenire frecventă la autentificare: sesiunea autentificată expiră după 30 de minute de inactivitate. Folosește avertizarea/controlul de prelungire când editezi activ.
?

Întrebări frecvente

Răspunsuri scurte la deciziile care contează cel mai des înainte de instalare.

PHP File Manager este gratuit?

Da. Modelul actual al produsului este gratuit și asociat domeniului.

Are nevoie de Composer, npm sau bază de date?

Nu este necesar niciun manager de pachete și nicio instalare de bază de date. Produsul este distribuit ca un singur fișier PHP și își păstrează starea privată în fișiere pe server.

Poate fi mutată o licență pe alt domeniu?

Licența este asociată domeniului. Activarea și dezactivarea sunt operații explicite; nu presupune că o cheie emisă pentru un domeniu va valida pe alt domeniu fără legătură.

Backupurile sunt întotdeauna publice lângă fișierul editat?

Nu. Auto poate folosi backupuri lângă original sau spațiu privat în funcție de proba de protecție, iar modul Privat scrie întotdeauna backupurile noi în afara rădăcinii web publice.

Obține Tyrus gratuit → ← Înapoi la tyrus.dk v1.0.7 · Licență gratuită asociată domeniului · © 2026 A. Angel Țîru / Tyrus