CakeFest 2024: The Official CakePHP Conference

ZipArchive::getFromName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromNameİsmi belirtilen girdinin içeriğini döndürür

Açıklama

public ZipArchive::getFromName(string $isim, int $uzunluk = 0, int $seçenekler = 0): string|false

İsmi belirtilen girdinin içeriğini döndürür.

Bağımsız Değişkenler

isim

Girdinin ismi.

uzunluk

Girdiden okunacak uzunluk. 0 belirtilirse, tüm girdi okunur.

seçenekler

Girdiyi bulmak için kullanılacak seçenekler, Aşağıdaki sabitler VEYAlanarak belirtilir:

Dönen Değerler

Başarısızlık durumunda false aksi takdirde girdinin içeriği döner.

Örnekler

Örnek 1 - Dosya içeriğinin basılması

<?php
$zip
= new ZipArchive;
if (
$zip->open('test1.zip') === TRUE) {
echo
$zip->getFromName('testfromfile.php');
$zip->close();
} else {
echo
'failed';
}
?>

Örnek 2 - Bir zip girdisindeki resimde dönüşüm

<?php
$z
= new ZipArchive();
if (
$z->open(dirname(__FILE__) . '/test_im.zip')) {
$im_string = $z->getFromName("pear_item.gif");
$im = imagecreatefromstring($im_string);
imagepng($im, 'b.png');
}
?>

Ayrıca Bakınız

add a note

User Contributed Notes 2 notes

up
-1
henrik dot haftmann at gmail dot com
7 years ago
The handling of file names containing non-ASCII characters is undocumented. It seems that this function calls <?php mb_convert_encoding($name,"CP850","UTF-8") ?> and therefore expects DOS encoding in the zipfile but UTF-8 encoding for the name. If the zipfile uses UTF-8 names (Pkzip 4.5 / Winzip 11.2), this function fails. Use getFromIndex instead as a workaround.
up
-4
masterboreq at gmail dot com
4 years ago
When passing to the method explicit string which contains a relative path (inside the ZIP archive), e.g. 'path/to/file.php/' please make sure you used single quotation mark (') not the double one ("). Double quotation mark produce FALSE (at least at Windows machine) giving no further hints what gone wrong.
Also, please make sure that the path delimiters used inside your ZIP file is backslash or forward slash since it's make a difference in this place too.
I hope I saved you a headache while working with this (so far) unmentioned "feature" :)
To Top