PHP: Verzeichnis rekursiv kopieren

PHP bietet leider keine Möglichkeit um ein Verzeichnis inkl. aller Unterordner an einen anderen Ort zu kopieren. Hierfür kann die folgende Methode verwendet werden:

Code:

function copyDir($sSourcePath, $sTargetPath)
{  
    if (is_dir($sSourcePath) && !is_dir($sTargetPath))
    {
        mkdir($sTargetPath, 0755);
        foreach ($oIterator = new \RecursiveIteratorIterator(
                new \RecursiveDirectoryIterator($sSourcePath, \RecursiveDirectoryIterator::SKIP_DOTS),
                \RecursiveIteratorIterator::SELF_FIRST) as $oItem)
        {
            if ($oItem->isDir())
                mkdir($sTargetPath.DIRECTORY_SEPARATOR.$oIterator->getSubPathName());
            else
                copy($oItem, $sTargetPath.DIRECTORY_SEPARATOR.$oIterator->getSubPathName());
        }
        return true;
    }
    return false;
}

PHP: Verzeichnis rekursiv kopieren weiterlesen

PHP: ZIP-Archiv erstellen

Die kleine Hilfsklasse „ZipHelper“ ermöglicht es, auf einfache Weise Zip-Archive mit PHP zu erstellen. Die Dateien und Verzeichnisse lassen sich auf verschiedene Arten über die Methode „addSource“ zu dem Archiv hinzufügen. Verzeichnisse werden rekursiv durchlaufen.

Beispiel:

  $oZipHelper = new ZipHelper("my_archiv.zip");
  $oZipHelper->addSource('*.txt')
             ->addSource('*.php')
             ->addSource('../')
             ->addSource('/test.txt')
             ->addSource(array('/home/sklueh/write.sh',
                               '/home/sklueh/config.php'))
             ->addSource('/home/sklueh/my_directory')
             ->create();

PHP: ZIP-Archiv erstellen weiterlesen

PHP: Einfacher FTP-Upload mit der Klasse FTPConnection

Mit der Klasse FTPConnection lassen sich einzelne Dateien, mehrere Dateien oder komplette Verzeichnisse inkl. deren Unterverzeichnisse auf einen FTP-Server laden. Über den Konstruktor werden die Verbindungsparameter des FTP-Servers definiert. Um die Dateien oder Verzeichnisse auf einen Server zu laden, können die drei Methoden uploadFile, uploadFiles oder uploadDirectory verwendet werden.

1. uploadFile – Einzelne Datei hochladen:
Mit der Methode „uploadFile“ können einzelne Dateien hochgeladen werden.

$oFTP = new FTPConnection('sklueh.de', 'username', 'password');
var_dump($oFTP->uploadFile('testfile1.txt', 'testfile1.txt')); //true

2. uploadFiles – Mehrere Dateien hochladen:
Die Methode „uploadFiles“ läd alle definierten Dateien in das gewünschte Verzeichnis auf dem FTP-Server.

$oFTP = new FTPConnection('sklueh.de', 'username', 'password');
$aFiles = array('testfile1.txt', 'testfile2.txt', 'testfile3.txt');
var_dump($oFTP->uploadFiles($aFiles, '/my_dir/sub_dir')); //true

3. uploadDirectory – Komplettes Verzeichnis inkl. aller Unterordner hochladen:
Die Methode „uploadDirectory“ läd ein komplettes Verzeichnis inklusive aller Unterverzeichnisse in das definierte Zielverzeichnis auf dem FTP-Server.

$oFTP = new FTPConnection('sklueh.de', 'username', 'password');
var_dump($oFTP->uploadDirectory('example-dir1', '/')); //true

PHP: Einfacher FTP-Upload mit der Klasse FTPConnection weiterlesen