✦ Præferencer gemt
DOCS
// PHP File Manager · v1.0.7 · Dokumentation

PHP File Manager

af Tyrus Angel

En professionel PHP-filmanager i én fil til udviklere og systemadministratorer. Gratis domænelåst licens, ingen Composer, ingen npm og ingen databaseinstallation.

v1.0.7 Single File PHP 8.0+ CodeMirror 5 EN / RO / DK No Composer / npm No runtime CDN Gratis · Domænelåst
🚀

Installation

1
Upload manager.php til den mappe i webroden, som du vil administrere
2
Åbn manager.php i din browser
3
Aktivér den gratis licens, der er udstedt til det aktuelle domæne
4
Gennemfør engangsopsætningen, og vælg din adgangskode
Installation med én fil. Composer, npm og database er ikke påkrævet. Managerens private tilstand gemmes automat i .tyrusmanager uden for webroden. Indstillinger → Backups bruger som standard Auto: en diskret same-origin-kontrol tester, om en ufarlig midlertidig .bak-probe kan læses via HTTP. Hvis den er blokeret, bliver backups ved originalfilen for maksimal synlighed; hvis den er eksponeret, eller kontrollen ikke kan gennemføres, bruger nye backups en spejlet sti under private .tyrusmanager/backups. Der oprettes intet separat backupkatalog eller sporingsfil, og eksisterende backups ved originalfiler flyttes ikke automatisk.
Anbefalet struktur
/public_html/
  manager.php
  app/
  assets/

/private-or-parent-storage/
  .tyrusmanager/
    .manager_config
    .activity_log
    .login_attempts
    .blocked_ips
    backups/
EksempelPlacér manager.php i /public_html/tools/ for at administrere dette undertræ uden framework eller pakkehåndtering.
🔑

Gratis aktivering

Nuværende licensmodel: PHP File Manager er gratis og domænelåst. En gratis licens, der allerede er aktiveret for et domæne, forbliver gratis for dette domæne under de vilkår, der blev accepteret ved aktiveringen.

Aktivering sker før engangsopsætningen. Den downloadbare version validerer licensnøglen mod det aktuelle domæne og gemmer den lokale licenstilstand i managerens private lager.

1
Åbn den hentede manager.php på det domæne, hvor den skal bruges.
2
Indtast den gratis licensnøgle, der er udstedt til domænet, og vælg Aktivér licens.
3
Når valideringen lykkes, gennemføres setup-guiden. Domænemismatch, suspenderet adgang og integritetsfejl forbliver eksplicitte fejl og omgås ikke.
Har du brug for en licensnøgle? Få Tyrus gratis. Emailbekræftelse udsteder en gratis nøgle, der bindes til det domæne, du angiver.
🛸

Første start: licensaktivering og opsætning

Ved første start validerer den licenserede version licensen for det aktuelle domæne og åbner derefter engangsopsætningen. Opsætningsskærmen bevarer den mørke filmiske grænseflade, den animerede SVG-baggrund og Tyrus-identiteten.

① Adgangskode
  • Minimum 15 tegn
  • Live måler for adgangskodestyrke med længden som primært kriterium
  • Live indikator for matchende adgangskoder mellem de to felter
  • Foreslå stærk adgangskode genererer en kryptografisk sikker adgangskode med Web Crypto
  • Vis eller skjul hvert af de to adgangskodefelter
② Hjemmeside URL
  • Webstedets fulde URL, som bruges af Forhåndsvisning og handlingen til rydning af webstedets cache
  • URL-validering direkte i formularen
  • Logo-tip: skriv hvert ord i domænet med stort begyndelsesbogstav for at opdele det dynamiske logo i separate farvegrupper
③ Hosting Diskplads
  • Forudindstillinger: 10 / 20 / 50 / 100 / 200 GB, plus en brugerdefineret værdi
  • Brugerdefineret GB-felt med trinkontroller
  • Live konvertering fra GB til bytes
Sprogskifter: EN / RO / DK er tilgængelig direkte i opsætningsgrænsefladen.
Indsendelse af opsætning: valideringen kører før POST, og PRG-flowet forhindrer utilsigtet genindsendelse efter omdirigeringer.
Konfigurationen gemmes som JSON i den private .tyrusmanager/.manager_config: bcrypt-hash af adgangskoden, webstedets URL, diskgrænse, opsætningsdato og sprog.
EksempelFor https://example.com angives webstedets URL præcist som HTTPS-origin, og diskkvoten vælges, så den svarer til den hostingkonto, der administreres.
🔐

Login & Sikkerhed

  • Adgangskoden verificeres mod bcrypt-hashen i den private .tyrusmanager/.manager_config
  • Skift adgangskode under Indstillinger → Sikkerhed. Den nuværende adgangskode verificeres igen med password_verify(), forsøg begrænses, og den nye bcrypt-hash skrives atomisk til den private .tyrusmanager/.manager_config.
  • Indbygget adgangskodegenerator med 16–64 tegn, Web Crypto-tilfældighed og en live styrkemåler med længden som primært kriterium
  • Brute-force-beskyttelse: mislykkede loginforsøg gemmes privat i .tyrusmanager/.login_attempts
  • Forsøg 1: “Noget virker ikke rigtigt her.”
  • Forsøg 2: “Interessant... fortsætter du?”
  • Forsøg 3: IP-adressen låses i 15 minutter og registreres i den private .tyrusmanager/.blocked_ips.
  • Sessionstimeout: 30 minutters inaktivitet, derefter automatisk tilbage til login
  • En advarselslinje vises 2 minutter før udløb med live nedtælling
  • Kontrollen Forlæng opdaterer både browserens inaktivitetstimer og PHP-sessionen
  • Mus, tastatur, klik og rulning opdaterer browserens inaktivitetstæller
  • Handlinger tidsstemples i den private .tyrusmanager/.activity_log; IP-adressen registreres kun ved LOGIN og LOGOUT
EksempelTre mislykkede loginforsøg låser IP-adressen i 15 minutter; efter vellykket login gælder den normale timeout på 30 minutters inaktivitet.
👁

IP-blokeringsskærm

Under en midlertidig IP-lås erstattes den normale loginside af en dedikeret fuldskærms-canvas for blokeret adgang:

  • Menneskeligt ansigt tegnet proceduremæssigt ved hjælp af ctx.bezierCurveTo og ctx.ellipse
  • Øjne der følger markøren i realtid; pupiller sporer musen med begrænset bevægelse
  • Tilfældig blinken med variabel timing (tilfældig 180–480 billeder)
  • Periodisk glitch-effekt; getImageData/putImageData udsnits­forskydning + rød farvetone
  • CRT-scanlinjer; vandrette linjer med 4px mellemrum over hele canvas
  • Radial vignet; mørke kanter der lukker sig
  • Brugerdefineret markør; standardmarkør skjult, erstattet af lille rød prik
  • Blokeret: højreklik, F12, Ctrl+U/I/S, Escape, scroll
  • Beskeder med progressiv fade-in (2s og 5s forsinkelse)
  • Mus forlader vindue: tekstfarve skifter + bogstavafstand udvides
  • Subtil åndedrætsanimation på body-elementet
EksempelNår en IP-adresse er midlertidigt låst, erstattes den normale loginformular af den dedikerede blokeringsskærm, indtil låsen udløber.
🖥

Managergrænseflade

Headerbar
  • Dynamisk logo; genereret fra hjemmesidens URL. Hvert ord farvet forskelligt. Store bogstaver i URL = separat farve per ord
  • Diskforbrugslinje; visuel linje der viser brugt / samlet plads med nøjagtige MiB/GiB-værdier. Cache opdateret hvert 30. minut
  • Animeret sprogskifter; pille glider jævnt mellem EN / RO / DK (cubic-bezier). Nul side­indlæsning; fuld UI gengives via applyUiLang(). På mobil: simple kantede knapper
  • Knapper i topbjælken: 📋 Log · ⚠ Fejl · 🐘 PHP · ⌨ Genveje · 🔓/🔑 Root OFF/ON · ▶ Forhånds­visning · 💾 Gem · Log ud
Værktøjslinje
  • Navigation; ← Tilbage / → Frem med fuld historik. Knapper korrekt deaktiverede ved historikgrænserne
  • Brødkrummesti; klikbare stisegmenter til hurtig navigation
  • Søg filer; filnavnesøgning (max 100 resultater, ufølsom for store/små bogstaver, rekursiv)
  • I filer; skifte til indholdsøgningspanelet
  • Ny Mappe / Ny Fil; modal med navneinput
Sidepanel (Venstre Panel)
  • Kan ændres i størrelse; træk kant (min 160px, max 520px). Gemt i localStorage + sessionStorage. Dobbeltklik = nulstil til 270px
  • SERVERFILER; fuld fil/mappe-træ med typeikoner
  • Favoritter ⭐; tilføj eller fjern stjernen på enhver fil eller mappe. Gemt på serveren. SVG-stjerneikon vist direkte i listen
  • Flervalg; afkrydsningsfelter + Vælg alle. Massehandling: ZIP · Hent · Omdøb · Slet
  • Masse-ZIP; opret navngivet arkiv fra valgte elementer
  • Masse-hent; valgte som ZIP, streamet direkte til browser (bygget via tempnam, slettet umiddelbart efter overførsel)
  • Multi-omdøbning; masse-omdøbningsguide til valgte filer
  • Upload-zone; træk & slip eller klik. Konfliktmodal: Erstat / Behold begge (auto-nummereret) / Annuller
  • Indholdsøgningsinput; søg inde i filer fra sidepanelet
Kontekstmenu (Højreklik / Lang tryk)
Rediger · Forhåndsvis · Åbn · Hent · Omdøb · ZIP / Sikkerhedskopi · Udpak her · Tilladelser (chmod) · Slet · Tilføj til Favoritter / Fjern fra Favoritter
EksempelVælg flere logfiler i sidepanelet, opret en ZIP fra markeringen, og åbn derefter en anden mappe uden at miste de editorfaner, der allerede er åbne.
📝

Kodeeditor

Bygget på CodeMirror 5. Editorpakken er indlejret i manager.php og leveres af den samme fil uden tredjeparts-CDN under kørsel.

203 verificerede filnavnsmappinger
Den indbyggede editor har 203 verificerede filnavn/indholdsmappinger, der opløses til 110 registrerede CodeMirror-tilstande. Mappinglaget omfatter både filendelser og særlige filnavn/indholdstilfælde.
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

Særlig filnavnsgenkendelse: .htaccess → shell · .env → shell · Dockerfile → dockerfile · Makefile → shell · .gitignore → shell · .babelrc / .eslintrc → JSON

Editorfunktioner
  • Parentesmatch · Auto-luk parenteser · Fremhævning af aktiv linje
  • Kodefoldning; foldGutter med 4 folde-addons (klammer, indrykning, XML, kommentar)
  • Autofuldførelse; 5 hint-motorer (anyword, JS, CSS, HTML, XML). 400ms forsinkelse, min 3 tegn, undertrykt i strenge/kommentarer. Ctrl+Space = manuelt
  • Kommenter/fjern kommentar; Ctrl+/
  • Skriftstørrelses­kontrol; A− / A+ i bundlinjen
  • Brugerdefinerede rullepaneler; macOS-stil (3px transparent kant)
  • Billedforhånds­visning; jpg, jpeg, png, gif, webp, svg, ico vist inline i stedet for editor
Faner
  • Flere filer åbne samtidigt
  • Omarrangering via træk & slip; venstre/højre slippe-indikator med violet box-shadow
  • Ændringsprik; visuel indikator når filen har ugemte ændringer
  • Fane-kontekstmenu (højreklik): Luk / Luk andre / Luk uændrede / Luk alle
  • Advarsel om ugemte ændringer ved lukning
Find & Erstat
  • Fremhæver alle matches samtidigt med markText
  • Aktivt match i en anden farve; tællervisning: 3 / 12
  • Naviger: Enter (næste) / Shift+Enter (forrige)
  • Erstat ét → / Erstat alle ⟳
EksempelNår Dockerfile, composer.json, app.tsx og schema.sql åbnes, vælges den verificerede editortilstand fra filnavn/indholdsmappingen i stedet for én generisk teksttilstand.
🔬

Kodeanalysator / Linter

Åbner som et sidepanel ved siden af editoren via knappen 🔍 Analyser. Understøtter: .php · .css · .scss · .less · .js · .ts · .jsx · .tsx

Visuelle linje­markører; problemer markeret direkte i editor med farvekodet klasser. Klik på problem i panel → setCursor + scrollIntoView + 1,5s fremhævnings­blink på linjen.
Detektering af minificeret fil; via filnavn (.min.js, .bundle.js m.fl.) eller indhold (gns. linje >300 tegn). Viser venlig besked med knappen “Analyser alligevel →”.
PHP-tjek
TjekAlvorlighedBeskrivelse
PHP Syntaks🔴 errorphp -l via shell_exec eller token_get_all() ParseError-fallback
var_dump / print_r efterladt i kode🟡 warningFejlretnings-output ikke fjernet
$_SERVER['PHP_SELF'] uden htmlspecialchars()🟡 warningXSS-sårbarhed
die()/exit() med hardkodet streng🟡 warningAfslører serverinfo i produktion
$_POST/$_GET/$_REQUEST uden isset()🟡 warningKontekstbevidst; 3 linjer op/ned tjekket
PHP-funktions-stavefejl (118 mønstre)🔴 errorarray_mpa → array_map, jsno_encode → json_encode, etc.
Duplikerede funktionsdefinitioner🔴 errorMed reference til første-definitions-linjen
return uden for enhver funktion🟡 warningStrukturel klammerybde-analyse
md5() til adgangskoder🟡 warningKun når tæt på password/pass/pwd/hash kontekst
TODO / FIXME / HACK🔵 infoFuld kommentartekst udtrukket
CSS / SCSS / LESS Tjek
TjekAlvorlighedBeskrivelse
Ugyldig CSS-egenskab🟡 warning350+ gyldige egenskaber valideret
CSS-egenskabs-stavefejl🔴 error~160 mønstre, Levenshtein ≤ 3 forslag
Ugyldig egenskabsværdi🔴 errorVærdi valideret mod kendte gyldige muligheder per egenskab
Duplikeret egenskab i blok🟡 warningSamme egenskab defineret to gange i samme blok
Dobbelt semikolon ;;🟡 warningHyppig tastefejl
JS / TS Tjek
TjekAlvorlighedBeskrivelse
console.log efterladt i kode🔵 infoFjern inden produktionsdeploy
debugger; efterladt i kode🟡 warningStopper udførelse i browser
typeof sammenlignet med ==🟡 warningBør bruge ===
Ugyldig NaN-sammenligning (=== NaN)🔴 errorBrug Number.isNaN() eller isNaN()
eslint-disable efterladt i kode🔵 infoKan være glemt
TODO / FIXME / HACK🔵 infoFuld kommentartekst udtrukket
Robusthed: PCRE-grænser 10M, JIT deaktiveret, try/catch-beskyttelse for Throwable; går aldrig ned. Kompatibel PHP 8.0 → 8.4.
EksempelAnalysér en PHP-fil med et kendt typo-mønster: analysatoren rapporterer problemet, markerer linjen og lader dig hoppe direkte til den. PHP-motoren indeholder 118 verificerede typo-mønstre.
🛡

Backup-tilstande

Hver gemning kan bevare den forrige version som .bak. Den valgte tilstand styrer, hvor nye backups skrives; eksisterende backups kan fortsat bruges, når tilstanden ændres.

  • Auto — anbefalet: efter login kontrollerer en same-origin-probe, om en ufarlig midlertidig .bak kan læses via HTTP. Beskyttede servere bruger backups ved originalen; eksponerede eller ubekræftede servere bruger privat lager.
  • Ved originalen: skriver file.ext.bak ved siden af file.ext. Brug kun denne tilstand, når direkte HTTP-adgang til .bak-filer blokeres af webserveren.
  • Privat lager: skriver en spejlet backupsti under private .tyrusmanager/backups uden for den offentlige webrod. Der oprettes ikke et separat backupkatalog.
EksempelRedigér /public_html/app/config.php og gem én gang. I sibling-tilstand bliver den forrige version /public_html/app/config.php.bak; i privat tilstand spejles den under .tyrusmanager/backups. Diff .bak finder begge placeringer.
📦

ZIP-browser

Klik på en .zip-fil → åbner som panel der erstatter editorzonen.

  • Udvidbart træ; hierarkisk med dybdeindrykning
  • Kaskaderende afkrydsningsfelter; vælg mappe = vælg alle underelementer rekursivt. Delvis valg = individuelle filer sendt
  • Brugerdefineret hierarkisk sortering; mapper først, filer alfabetisk
  • Selektiv udtrækning; intelligent præfiks-fjernelse, ingen uønskede indlejrede stier
  • Konflikt-fortjek; viser præcis hvilke filer der ville blive overskrevet før udtrækning
  • Udpakning via træk & slip; træk fra ZIP-panelet til en mappe i filpanelet. Destinationsmappen fremhæves, når markøren holdes over den
  • Fuld udtrækning; udtræk alt indhold på én gang
EksempelÅbn release.zip i ZIP-browseren, kontrollér først træet, vælg kun config/ og public/, og udpak derefter disse poster i stedet for hele arkivet.
⇄

Sammenlign & Diff

Diff .bak

Hver gemning opretter automatisk en .bak af den forrige version på den aktive backupplacering. ↕ Diff .bak og gendannelse finder automatisk både backups ved originalfilen og private backups, så en eksisterende backup ikke bliver ubrugelig, når placeringen ændres. Hvis en fil slettes med backup aktiveret, mens Privat lager er valgt, bliver den spejlede kopi liggende under .tyrusmanager/backups og kan tilgås med ROOT ON.

Side-om-side Sammenligning
  • Fil 1: aktuel editorfil (automatisk)
  • Fil 2: klik på en fil i sidepanelet mens panelet er åbent
  • Statistik: +N tilføjet / -N fjernet
  • Farvekodede: ændret (rav/blå) · tilføjet (grøn) · fjernet (rød) · adskiller (mørk)
  • Uafhængig rulning per kolonne
EksempelEfter redigering af index.php bruges Diff .bak til at sammenligne den aktuelle fil med den tidligere gemte version, før du beslutter, om den skal gendannes.
✏

Multi-omdøbning

  • Mønsterkontroller: Præfiks · Suffiks · Find · Erstat (alle kan kombineres)
  • Auto-nummerering: 001, 002, 003…
  • Live forhånds­visning: gammelt navn → nyt navn for hver fil. Individuelle felter kan redigeres.
  • Ændrede navne fremhævet i gult
  • Alle omdøbninger i én operation med konfliktdetektering
EksempelOmdøb et valgt billedsæt fra IMG_*.jpg til et nummereret mønster som gallery_001.jpg, gennemgå forhåndsvisningen, og anvend først ændringen, når konflikterne er afklaret.
📋

Aktivitetslog

Aktivitetslog

Hver handling logges med tidsstempel, handlingstype og filsti. LOGIN og LOGOUT registrerer også IP-adressen. Den private JSON-log gemmes i .tyrusmanager/.activity_log, beholder de seneste 50 poster og kan ryddes fra Log-panelet.

PHP Fejllog
  • Parser CI4-format (LEVEL - DATE --> MSG) og PHP-standard ([date] PHP Fatal error:) log­formater
  • Rekonstruerer fulde stack traces
  • Grupperet efter alvorlighed: Kritisk/Fejl · Advarsel · Besked/Info
  • Kollaps/udvid per gruppe
  • Stack traces vist inline med APPPATH/SYSTEMPATH fremhævning
  • Omvendt kronologisk rækkefølge
EksempelHvis en gemning mislykkes, kontrolleres aktivitetsloggen for filhandlingen og PHP-fejlpanelet for serverfejlen, før rettigheder eller kode ændres.
🔓

Root-tilstand

Root OFF (standard); navigation begrænset til dokumentrod (public_html).

Root ON; naviger over public_html til serverroden. Adgang til logs, konfigurationer, filer uden for webroden. Advarslen vises som en toast-besked, og knappen i topbjælken ændres til 🔑 Root ON, når funktionen er aktiv.

EksempelBehold ROOT OFF til almindeligt arbejde. Slå kun ROOT ON til, når du bevidst har brug for den bredere document-root-visning eller en privat spejlet backup, og slå det derefter fra igen.
🔧

AJAX-API til backend

Alle operationer via manager.php?action=ACTION:

Backend APIBeskrivelse
listMappeindhold; navn, type, størrelse, ændret, sti, tilladelser
readFilindhold (max 5MB)
readimageBillede som base64 data-URI (jpg, png, gif, webp, svg, ico)
saveGem fil; sikkerhedskopierer automat den forrige version på den aktive backupplacering
uploadUpload; tilstande: spørg / erstat / kopiér (auto-nummereret)
downloadHent en enkelt fil via HTTP
download-zipFlere filer som ZIP; bygget via tempnam, streamet til browser, slettet umiddelbart efter
deleteSlet filer/mapper rekursivt; valgfri .bak-sikkerhedskopi bruger den aktive backupplacering
renameOmdøb; konfliktdetektering, valgfri tvungen overskrivning
newfolderOpret mappe (rekursiv mkdir)
newfileOpret tom fil
zipOpret ZIP-arkiv på server
zip-listZIP-indhold som hierarkisk træ
unzipUdtræk fuldt ZIP-arkiv
unzip-selectiveUdtræk valgte elementer med intelligent præfiks-fjernelse
unzip-checkFortjek udtræknings­konflikter før udtrækning
chmodSkift fil/mappe-tilladelser
searchRekursiv filnavnesøgning (max 100 resultater)
searchcontentTekst inde i filer (max 50 filer × 5 matches)
diskusageDiskforbrug; crawler 2 niveauer over docroot, cachet 30 minutter
diffFil vs .bak med 3-linje kontekst
compareSide-om-side diff mellem to vilkårlige filer
lintPHP/CSS/JS-analyse; struktureret problemarray
errorlogParser PHP fejllog (CI4 + standardformat)
clearerrorlogRyd PHP-fejllogfilen
phpinfoParset PHP-info; version, udvidelser, indstillinger
getfavoritesVis foretrukne stier
togglefavoriteTilføj til eller fjern fra favoritter
getlogAktivitetslog-poster
clearlogRyd aktivitetslog
clearcacheLiteSpeed purge-header + CI4 writable/cache-mappe-rydning
getdocrootServerens dokumentrodsti
multirenameMasse­omdøbning med konfliktdetektering
EksempelGrænsefladen bruger handlinger som read, save, zip-list, unzip-selective, diff og lint; de er interne managerhandlinger, ikke et offentligt tredjeparts-REST-API.
🌐

Flersproget

416 UI-nøgler på hvert sprog. Hele managerens brugerflade er tilgængelig på EN / RO / DK.

  • Skift uden sideindlæsning; switchLang() → applyUiLang() + loadFiles() + renderTabs()
  • Alle DOM-elementer opdateret: knapper, modaler, pladsholdere, snydelap (fuldt regenereret), ZIP-hints, timeout-linje
  • Sproget gemmes i en cookie og i den private .tyrusmanager/.manager_config
  • Animeret pille-skifter (desktop): cubic-bezier glidning, ingen overgang ved init for at undgå blink
🇬🇧 English     🇷🇴 Romanian     🇩🇰 Danish
EksempelSkift EN → RO → DK i managerens topbjælke: etiketter gengives uden fuld sidegenindlæsning, og det valgte sprog gemmes.
📱

Mobil

BrudpunktAdfærd
< 425pxLog skjult, diskbarre skjult, mikroknapper 8px, simpel sprogskifter
425–599pxLog vises først (order:-1) før Fejl
600–1023pxSprogskifter fast i topbjælken (ingen absolut positionering)
1024–1100pxSprogskifter statisk, kompakt værktøjslinje
> 1100pxFuld desktop-layout, animeret pille centreret absolut
  • Sidepanelsskuffe; glider ind fra venstre, overlay lukker den, den lukker automat ved filåbning, ZIP eller billede og forbliver åben under mappenavigation
  • Langt tryk 500ms; kontekstmenu ved berørings­position, haptisk feedback (navigator.vibrate(30)), bevæg finger = annuller
  • Fanesystem; max-bredde 90px, ellipse, luk altid synlig, vandret rulning
  • Diff/Sammenlign; skjult under 768px (utilstrækkelig plads til delt visning)
EksempelPå en telefon åbnes sideskuffen, en fil holdes nede for konteksthandlinger, den åbnes i en editorfane, og skuffen lukkes uden at ændre desktop-arbejdsgangen.
⌨

Tastaturgenveje

GenvejHandling
Ctrl + SGem aktuel fil
Ctrl/⌘ + KÅbn kommandopalette
Ctrl + WLuk aktuel fane
Ctrl + ZFortryd
Ctrl + YGenopret
Ctrl + FFind i fil
Ctrl + HFind & Erstat
Ctrl + /Kommenter / fjern kommentar på linje
TabIndryk markering
Ctrl + SpaceManuel autofuldførelse
EscapeLuk autofuldførelse / modal
A+ / A−Forøg / formindsk skriftstørrelse
Right-click fileKontekstmenu
Right-click tabFane-kontekstmenu
Drag tabOmarrangér faner
Drag sidebar borderSkift størrelse på sidepanel
Double-click borderNulstil sidepanelbredde til standard
F1Åbn genvejsoversigten
Ctrl + QAnalyser / lint aktuel fil
Delete / Shift + DeleteSlet markering; Shift+Delete springer bekræftelsen over
EksempelBrug Ctrl/⌘ + K til kommandopaletten, Ctrl + S til at gemme og Ctrl + Q til at analysere den aktive fil uden at forlade editoren.
📋

Krav

  • PHP 8.0 eller nyere; den aktuelle version er testet til og med PHP 8.4
  • ZipArchive kræves til oprettelse, visning og udpakning af ZIP-arkiver
  • Der kræves en skrivbar privat mappe uden for webroden til managerens tilstand. Manageren opretter automat .tyrusmanager, når det er muligt; TYRUS_MANAGER_STORAGE kan angive en bestemt placering.
  • Ingen Composer · Ingen npm · Ingen databaseinstallation · Intet tredjeparts-CDN under drift
EksempelEn minimal installation kan køre på PHP 8.0+ med skrivbart privat lager. Oprettelse, visning og udpakning af ZIP kræver desuden PHP-udvidelsen ZipArchive.
🛡

Kompatibilitet med hosting-scannere

manager.php er et legitimt serveradministrationsværktøj. Læsning og skrivning af filer, uploads, arkivhåndtering, ændring af tilladelser, redigering af kildekode og serverdiagnostik er normale dele af det, værktøjet er bygget til. Nogle heuristiske hosting-scannere klassificerer software efter funktioner, så et officielt og uændret build kan lejlighedsvis blive mærket som et administrationsværktøj eller give en falsk positiv.

Integritet for den officielle udgivelse: det officielle build vedligeholdes og testes direkte af udvikleren. Licenserede builds validerer beskyttede kritiske blokke mod den kanoniske udgivne version under licenskontroller. En funktionsbaseret scanneretiket ændrer ikke oprindelsen eller integriteten af en officiel og uændret udgivelse.
  • Brug den officielle kilde: download manager.php direkte fra tyrus.dk, så du ved præcis hvilken udgivelse og licenseret kopi du kører.
  • Hvis en scanner mærker filen: sammenlign med en ny officiel download, og lad licensens integritetskontrol bekræfte de beskyttede kritiske blokke mod den kanoniske udgivelse.
  • Hosting-kompatibilitet: hvis din udbyder understøtter allowlisting eller undtagelser for kendte administrationsværktøjer, bør det kun anvendes på den verificerede officielle kopi fra Tyrus.
  • Rapportér kompatibilitet: hvis en ny officiel kopi gentagne gange klassificeres af en hosting-scanner, så send scannerens navn og detektionsetiket til angel@tyrus.dk, så kompatibilitetsnoten kan følges og holdes opdateret.
Af hensyn til gennemsigtighed er Hostinger-sagen dokumenteret separat. En indledende scannerklassifikation blev beskrevet i stærkere vendinger, hvorefter Hostinger efter yderligere gennemgang rettede formuleringen og beskrev filen under sin klassifikation for administrationsværktøjer. Den fulde tidslinje og korrespondance findes i sagsmaterialet.
Læs den dokumenterede Hostinger-sag →
🧭

Fejlfinding

Start med den præcise fejl, manageren viser. Kontrollerne nedenfor knytter de mest almindelige fejl til den komponent, der faktisk styrer dem.

  • Aktivering fejler: kontrollér domænet, som manageren viser, hele licensnøglen og udgående HTTPS-adgang fra PHP. En domænelåst nøgle kan ikke bruges på et andet, urelateret domæne.
  • Setup kan ikke gemme: kontrollér, at PHP kan oprette/skrive til den private .tyrusmanager-placering, eller sæt TYRUS_MANAGER_STORAGE til en skrivbar privat sti.
  • ZIP-handlinger er ikke tilgængelige: aktivér PHP-udvidelsen ZipArchive i samme runtime, som serverer manager.php. CLI-PHP og webserverens PHP kan indlæse forskellige udvidelser.
  • Backup på uventet placering: kontrollér Indstillinger → Backups. I Auto-tilstand vælger en eksponeret eller ubekræftet .bak-probe bevidst privat lager.
  • Hyppig tilbagevenden til login: den godkendte session udløber efter 30 minutters inaktivitet. Brug sessionsadvarslen/forlængelsen, når du arbejder aktivt.
?

FAQ

Korte svar på de beslutninger, der oftest er vigtige før installation.

Er PHP File Manager gratis?

Ja. Den nuværende produktmodel er gratis og domænelåst.

Kræver den Composer, npm eller en database?

Der kræves ingen pakkehåndtering eller databaseinstallation. Produktet distribueres som én PHP-fil og gemmer sin private tilstand i serverfiler.

Kan en licens flyttes til et andet domæne?

Licensen er domænelåst. Aktivering og deaktivering er eksplicitte handlinger; antag ikke, at en nøgle udstedt til ét domæne validerer på et andet, urelateret domæne.

Ligger backups altid offentligt ved den redigerede fil?

Nej. Auto kan bruge backups ved originalen eller privat lager afhængigt af beskyttelsesproben, og Privat skriver altid nye backups uden for den offentlige webrod.

Få Tyrus gratis → ← Tilbage til tyrus.dk v1.0.7 · Gratis domænelåst licens · © 2026 A. Angel Țîru / Tyrus