PHP Doku:: Copy a file internal to the phar archive to another new file within the phar - phardata.copy.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzErweiterungen zur Datenkompression und ArchivierungPharThe PharData classPharData::copy

Ein Service von Reinhard Neidl - Webprogrammierung.

The PharData class

<<PharData::convertToExecutable

PharData::decompress>>

PharData::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::copyCopy a file internal to the phar archive to another new file within the phar

Beschreibung

bool PharData::copy ( string $oldfile , string $newfile )

Copy a file internal to the tar/zip archive to another new file within the same archive. This is an object-oriented alternative to using copy() with the phar stream wrapper.

Parameter-Liste

oldfile

newfile

Rückgabewerte

returns TRUE on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

Fehler/Exceptions

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

Beispiele

Beispiel #1 A PharData::copy() example

This example shows using PharData::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All PharData methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
    
$phar = new PharData('myphar.tar');
    
$phar['a'] = 'hi';
    
$phar->copy('a''b');
    echo 
$phar['b']; // outputs "phar://myphar.tar/b"
} catch (Exception $e) {
    
// handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.tar/a''phar//myphar.tar/c');
echo 
file_get_contents('phar://myphar.tar/c'); // outputs "hi"
?>


Keine BenutzerBeiträge.
- Beiträge aktualisieren...



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)