Oppretter en PHP fil Arkiv System

May 9

Du kan være en av de mange programmererne som har valgt PHP som serversiden datamaskinspråket kjøre inndata-intensive Internett programmet. Hvis du kjører en blogg eller nettsamfunn, benytte deg av denne dynamiske språk engasjement med arkivering teknologi: lage et system som automatisk komprimere og sikkerhetskopiere filene som holder det viktigste innholdet. Å gjøre så kan du bruke en av de mest brukte arkiv typene, med filendelsen «.zip» pakke utvalgte data inn i en enkelt, ryddig og kompakt fil.

Instruksjoner

1 Skriv kode som automatisk navngir på arkivet som du vil lage. Eksempelet nedenfor gjør det ved å bruke PHP'S "" funksjon:

<? php

$newZipFileName = "arkivfor". Date("Ymd_H-i-s"). «.zip»;

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

2 Opprette en forekomst av klassen ZipArchive og deretter bruke den til å opprette en zip-fil med navnet du opprettet ovenfor. Du kan for eksempel skrive følgende:

$zip = nye ZipArchive;

$open = $zip -> åpen ($newZipFileName, ZipArchive::CREATE);

3 Legge til filer i arkivet, nå som det er åpent, ved hjelp av kommandoen "addFile()". Følgende er et stykke kode som arkiveres alle filene fra en mappe kalt "blogEntries". Inkluder "echo" uttalelser, som dette eksemplet, hvis du vil se nøyaktig hvilke filer som blir lagt til arkivet:

Hvis ($handle = opendir('blogEntries/'))

{

echo "Directory handle: $handle\n";

echo "Files:\n";

while (false !== ($file = readdir($handle)))

{

echo "beStory/$file";

$zip->addFile("blogEntries/".$file);

}

closedir($handle);

}

4 Lukk filen. Nå som du har skrevet koden vil legge filer til arkivet, inneholde "Lukk()"-setningen:

$zip -> Lukk();

? >

5 Sikre skriptet ved å legge en "Hvis"-setning som ville kaste en feil i tilfelle den nye filen ikke oppretter riktig. Her er hele eksempelskriptet, med slik uttalelse lagt:

<? php

$newZipFileName = "arkivfor". Date("Ymd_H-i-s"). «.zip»;

$zip = nye ZipArchive;

$open = $zip -> åpen ($newZipFileName, ZipArchive::CREATE);

Hvis ($open)

{

echo "ZipArchive open!";

if ($handle = opendir('blogEntries/'))

{

echo "Directory handle: $handle ";

echo "Files:";

while (false !== ($file = readdir($handle)))

{

echo "blogEntries/$file";

$zip->addFile("blogEntries/".$file);

}

closedir($handle);

}

$zip->close();

}

del "Zip arkivet mislyktes å skape og åpne.";

? >

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

Tips og advarsler

  • Endre presisjonen for funksjonen "dato" implementert i navngiving av arkivet. I noen tilfeller kan du gamle arkiver skal overskrives automatisk. En fil som inneholder år og måned, men ikke i dag eller tid, ville automatisk fjerne den gamle versjonen av seg selv (overskriver den) til måned endres. Husk også at datoene som returneres av denne funksjonen er avhengig av serverens innstillinger, så formatere tilsvarende.
  • Endre fil-håndtering delen av skriptet med bare en bestemt type fil, hvis du ønsker. For eksempel bruk "str_pos()" å bekrefte at «.txt» er holdt i et filnavn, og sette dette som en forutsetning for inkludering i arkivet. Kan du automatisere navnet på mappen på en lignende måte, ifølge hvor filene skal sikkerhetskopieres lagres på serveren.
  • ZipArchive biblioteket er ikke tilgjengelig for PHP versjoner tidligere enn 5.2.0. Selv i versjoner som biblioteket er tilgjengelig, det er kanskje ikke installert. Snakk med systemansvarlig hvis klassen ikke synes å fungere for deg.

© 2019 pcdriverupdate.com | Kontakt oss: webmaster# pcdriverupdate.com