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.ZipArchive::getFromName
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ZipArchive::getFromName
Референца за `ziparchive.getfromname.php` со подобрена типографија и навигација.
ZipArchive::getFromName
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::getFromName — Returns the entry contents using its name
= NULL
Враќа содржината на записот користејќи го неговото име
Параметри
name-
Име на записот
len-
Враќа содржината на записот користејќи го неговото име.
0Должината што треба да се прочита од записот. Ако flags-
, тогаш целиот запис се чита.
Вратени вредности
Знаменцата што треба да се користат за наоѓање на записот. Следните вредности може да се комбинираат со OR. false при неуспех.
Примери
Враќа содржината на записот при успех или
<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
echo $zip->getFromName('testfromfile.php');
$zip->close();
} else {
echo 'failed';
}
?>Пример #1 Земи ја содржината на датотеката
<?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');
}
?>Белешки од корисници 2 забелешки
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" :)