Când trebuie să extrageți rapid sursa site-ului de pe server, chiar și un ton SSH relativ rapid nu oferă viteza necesară. Și trebuie să aștept foarte, foarte mult. Mulți furnizori de servicii de găzduire nu furnizează acest acces și vă fac să vă mulțumiți cu FTP, care este de multe ori mai lent.
Personal pentru mine, am hotărât calea. Un mic script este descărcat pe server și lansat. După o vreme, obținem o arhivă cu toate sursele. Și un fișier, chiar și cu vechiul FTP, leagă mult mai repede decât o sută de mici.
Anterior, biblioteca zipArchive a fost menționată deja în paginile acestui blog. Totuși, atunci era vorba despre despachetarea arhivei.
În primul rând, trebuie să aflăm dacă există suport pentru zipArhive pe server. Această bibliotecă populară este instalată pe un număr copleșitor de site-uri de găzduire.
Biblioteca este strict limitată la parametrii php și server. Bazele imense și băncile de fotografii nu pot fi arhivate. Chiar și baza programului vechi bun 1C pentru contabilitate. Se pare că ar trebui să fie doar date text. Dar nu.
Vă sfătuiesc să folosiți biblioteca numai atunci când arhivați site-uri relativ mici, cu un număr mare de fișiere mici.
Să verificăm dacă biblioteca este disponibilă
Dacă totul este bine, scenariul va continua executarea acestuia.
Un mic offtopic, pentru astfel de controale. Verificările trebuie efectuate exact în acest fel, evitând construcțiile mari cu paranteze imbricate. Deci codul va fi mai atomic și va fi ușor de depanat. comparație
Codul este mai plăcut și nu se dezvoltă în construcții uriașe închise.
Îmi pare rău pentru offtopic, dar aș vrea să împărtășesc această descoperire.
Acum creați obiectul și arhiva.
unde destinația $ este calea completă spre arhivă. Dacă arhiva este deja creată, fișierele vor fi adăugate la ea.
Adăugarea unui fișier funcționează într-un mod similar, dar trebuie să îl citiți mai întâi într-un șir.
În cele din urmă, trebuie să închideți arhiva.
Cum să rulați toate fișierele și subdirectoarele într-un dosar, nu cred că trebuie să explic. Google, ceva de genul traversal dosar recursiv pe php
Am abordat această opțiune