Opprette et PHP File Arkiv System

Opprette et PHP File Arkiv System


Du kan være en av de mange programmerere som har valgt PHP som server-side programmeringsspråk for å drive u-intensive Internett-programmet. Hvis du kjører en blogg eller nettsamfunn, benytte deg av denne dynamiske språk engasjement med arkiveringsteknologi: lage et system som automatisk komprimere og sikkerhetskopiere filene som holder ditt viktigste innholdet. For å gjøre slik at du kan bruke en av de mest brukte arkivtyper, med ".zip" forlengelse, å pakke utvalgte data i en enkelt, ryddig og kompakt fil.

Bruksanvisning

1 Skriv kode som legger inn navn på arkiv som du vil lage. Eksempelet nedenfor gjør det ved å bruke PHP er "date ()" funksjon:

<? Php

$ newZipFileName = "arkiv

for". date ( "Ymd_H-er"). ".zip";

Filnavnet som genereres av denne kode er unik og nøyaktig ned til den andre. Slike nøyaktighet sikrer at arkivene ikke vil overskrive hverandre. For eksempel, hvis skriptet ble henrettet den 11. 2010 januar på nøyaktig fem i ettermiddag, vil det nye filnavnet være "archive_for_20100111_16-00-00.zip".

2 Opprett en forekomst av ZipArchive klassen, og deretter bruke den til å lage en zip-fil med navnet du opprettet ovenfor. For eksempel kan du skrive følgende:

$ Zip = ny ZipArchive;

$ Åpne = $ zip> open ($ newZipFileName, ZipArchive :: CREATE);

3 Legge til filer i arkivet, nå som den er åpen, ved å bruke "AddFile ()" kommandoen. Følgende er et stykke kode som vil arkivere alle filer fra en katalog som heter "blogEntries". Inkluder "echo" uttalelser, da dette utvalget gjør, hvis du ønsker å se nøyaktig hvilke filer som blir lagt til arkivet:

if ($ håndtaket = opendir ( 'blogEntries /'))

{

echo "Directory handle: $handle\n";

echo "Files: \ n";

while (false! == ($ file = readdir ($ håndtak)))

{

echo "beStory / $ file";

$ Zip> AddFile ( "blogEntries /".$ fil);

}

closedir ($ håndtak);

}

4 Lukke filen. Nå som du har skrevet inn koden som vil legge til filer i arkivet, blant annet "close ()" statement:

$ Zip> close ();

?>

5 Sikre skriptet ved å legge til en "hvis" statement som vil kaste en feil i tilfelle den nye filen ikke skaper riktig. Her er hele utvalget manus, med en slik uttalelse til:

<? Php

$ newZipFileName = "arkiv

for". date ( "Ymd_H-er"). ".zip";

$ Zip = ny ZipArchive;

$ Åpne = $ zip> open ($ newZipFileName, ZipArchive :: CREATE);

if ($ open)

{

echo "ZipArchive open!";

if ($ håndtaket = opendir ( 'blogEntries /'))

{

echo "Directory håndtak: $ håndtak";

echo "Files:";

while (false! == ($ file = readdir ($ håndtak)))

{

echo "blogEntries / $ file";

$ Zip> AddFile ( "blogEntries /".$ fil);

}

closedir ($ håndtak);

}

$ Zip> close ();

}

ellers echo "ZIP-arkiv mislyktes i å skape og åpne.";

?>

6 Kapsle dette skriptet som en funksjon, og har din hovedprogrammet kalle det automatisk. Alternativt, legg den i en frittstående PHP-fil og kjøre den så ofte som du ønsker bare ved å besøke denne filen i nettleseren din.

Hint

  • Alter presisjonen av "date" funksjon implementert i navngiving av arkivet. I noen tilfeller kan det være lurt gamle arkiver for å automatisk bli overskrevet. En fil som inneholder år og måned, men ikke dagen eller tid, vil automatisk slette den gamle versjonen av seg selv (overskrive den) før endres måneden. Husk også at datoene returneres av denne funksjonen avhenger av innstillingene serverens, så formatere tilsvarende.
  • Endre fil-håndtering delen av skriptet til å omfatte bare en bestemt type fil, hvis du ønsker det. Bruk for eksempel "str_pos ()" for å bekrefte at ".txt" er holdt i et filnavn, og sette dette som vilkår for inkludering i arkivet. Det kan være lurt å automatisere navnet på katalogen på en lignende måte, i henhold til hvor filene som skal sikkerhetskopieres, lagres på serveren din.
  • Den ZipArchive Biblioteket er ikke tilgjengelig for PHP versjoner tidligere enn 5.2.0. Selv i versjoner som biblioteket er tilgjengelig, kan det ikke bli installert. Snakk med systemansvarlig hvis klassen ikke ut til å fungere for deg.