本文整理汇总了PHP中zip_entry_open函数的典型用法代码示例。如果您正苦于以下问题:PHP zip_entry_open函数的具体用法?PHP zip_entry_open怎么用?PHP zip_entry_open使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了zip_entry_open函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: odt_unzip
public function odt_unzip($file, $save = false)
{
if (!function_exists('zip_open')) {
die('NO ZIP FUNCTIONS DETECTED. Do you have the PECL ZIP extensions loaded?');
}
if ($zip = zip_open($file)) {
while ($zip_entry = zip_read($zip)) {
$filename = zip_entry_name($zip_entry);
if (zip_entry_name($zip_entry) == 'content.xml' and zip_entry_open($zip, $zip_entry, "r")) {
$content = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
if (preg_match('Pictures/', $filename) and !preg_match('Object', $filename) and zip_entry_open($zip, $zip_entry, "r")) {
$img[$filename] = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
}
if (isset($content)) {
if ($save == false) {
return array($content, $img);
} else {
file_put_contents('content.xml', $content);
if (is_array($img)) {
if (!is_dir('Pictures')) {
mkdir('Pictures');
}
foreach ($img as $key => $val) {
file_put_contents($key, $val);
}
}
}
}
}
}
示例2: extract_zip
function extract_zip($zipfile, $dir)
{
if (function_exists('zip_open')) {
$zip = zip_open($zipfile);
if ($zip) {
while ($zip_entry = zip_read($zip)) {
if (zip_entry_filesize($zip_entry) > 0) {
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
file_put($dir . '/' . zip_entry_name($zip_entry), $buf);
}
} else {
dir_create($dir . '/' . zip_entry_name($zip_entry));
}
}
zip_close($zip);
}
} else {
$array = $this->list_zip($zipfile);
$count = count($array);
$f = 0;
$d = 0;
for ($i = 0; $i < $count; $i++) {
if ($array[$i]['folder'] == 0) {
if ($this->extract_file($zipfile, $dir, $i) > 0) {
$f++;
}
} else {
$d++;
}
}
}
return true;
}
示例3: version_get
/**
* APP版本更新接口
* @date: 2016年1月10日 下午9:30:33
*
* @author : Elliot
* @param
* : none
* @return :
*/
public function version_get()
{
$dir = 'data';
$dh = @opendir($dir);
$return = array();
while ($file = @readdir($dh)) {
// 循环读取目录下的文件
if ($file != '.' and $file != '..') {
$path = $dir . DIRECTORY_SEPARATOR . $file;
// 设置目录,用于含有子目录的情况
if (is_file($path)) {
$filetime[] = date("Y-m-d H:i:s", filemtime($path));
// 获取文件最近修改日期
$return[] = $dir . DIRECTORY_SEPARATOR . $file;
}
}
}
@closedir($dh);
// 关闭目录流
array_multisort($filetime, SORT_DESC, SORT_STRING, $return);
// 按时间排序
$file = current($return);
$zip = zip_open($file);
if ($zip) {
while ($zip_entry = zip_read($zip)) {
if (zip_entry_name($zip_entry) == self::INSTALLPACKETVERSIONFILE && zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
}
zip_close($zip);
}
$result = array('version' => $buf, 'url' => 'http://' . $_SERVER['SERVER_NAME'] . DIRECTORY_SEPARATOR . $file);
$this->response($result, 200);
}
示例4: findFromZip
function findFromZip($file, $path)
{
global $encoding;
if (preg_match('/.*\\.(?:jar|zip)$/i', $file)) {
if (function_exists("zip_open")) {
$zip = zip_open($file);
if (!is_resource($zip)) {
die(zipFileErrMsg($zip));
}
while ($entry = zip_read($zip)) {
if (zip_entry_name($entry) == $path && zip_entry_open($zip, $entry, "r")) {
$contentType = findMimiType($path);
if (preg_match('/^image\\//i', $contentType)) {
header("Content-Type:{$contentType};");
} else {
header("Content-Type:{$contentType};charset={$encoding}");
}
echo zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
zip_close($zip);
return true;
}
}
zip_close($zip);
} else {
echo "//您的php没有安装zip扩展,无法遍历zip格式类库";
return true;
}
}
}
示例5: getLayoutData
function getLayoutData($layout, $fileName, $usage, $install = false)
{
$output = "";
$zip = zip_open(($install == false ? 'layouts/' : '../layouts/') . $layout . '.zip');
if ($zip) {
while ($zip_entry = zip_read($zip)) {
$file = basename(zip_entry_name($zip_entry));
if (zip_entry_open($zip, $zip_entry, 'r')) {
if ($usage == "include" && strpos($file, $fileName) !== FALSE) {
$output = 'phar://layouts/' . $layout . '.zip/' . zip_entry_name($zip_entry);
}
if ($usage == "echo") {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
if (strpos(strval($file), strval($fileName)) !== FALSE) {
if (strpos($file, 'settings') !== FALSE) {
$output = json_decode($buf, true);
} else {
$output = $buf;
}
}
}
}
}
zip_close($zip);
}
return $output;
}
示例6: read_file_docx
public function read_file_docx($filename)
{
$striped_content = '';
$content = '';
if (!$filename || !file_exists($filename)) {
return false;
}
$zip = zip_open($filename);
if (!$zip || is_numeric($zip)) {
return false;
}
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip, $zip_entry) == FALSE) {
continue;
}
if (zip_entry_name($zip_entry) != "word/document.xml") {
continue;
}
$content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
// end while
zip_close($zip);
//echo $content;
//echo "<hr>";
//file_put_contents('1.xml', $content);
$content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
$content = str_replace('</w:r></w:p>', "\r\n", $content);
$striped_content = strip_tags($content);
return $striped_content;
}
示例7: getFile
public function getFile($name)
{
$this->_open();
$contents = '';
while ($e = zip_read($this->zh)) {
if (zip_entry_name($e) == $name) {
if (zip_entry_open($this->zh, $e)) {
$size = zip_entry_filesize($e);
while ($data = zip_entry_read($e, $size)) {
$contents .= $data;
}
}
}
}
/*
$e = $this->handles[$name];
if(zip_entry_open($this->zh, $e)) {
$size = zip_entry_filesize($e);
while($data = zip_entry_read($e,$size)) {
$contents .= $data;
}
} else {
$this->log('could not open');
}
*/
$this->_close();
return $contents;
}
示例8: ExtractEntry
public static function ExtractEntry($zip, $entry)
{
zip_entry_open($zip, $entry);
$data = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
return $data;
}
示例9: unpackZip
function unpackZip($file, $dir)
{
if ($zip = zip_open(getcwd() . $file)) {
if ($zip) {
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$dir_name = dirname(zip_entry_name($zip_entry));
if ($dir_name == "." || !is_dir($dir_name)) {
$dir_op = $dir;
foreach (explode("/", $dir_name) as $k) {
$dir_op = $dir_op . $k;
if (is_file($dir_op)) {
unlink($dir_op);
}
if (!is_dir($dir_op)) {
mkdir($dir_op);
}
$dir_op = $dir_op . "/";
}
}
$fp = fopen($dir . zip_entry_name($zip_entry), "w");
fwrite($fp, $buf);
zip_entry_close($zip_entry);
} else {
return false;
}
}
zip_close($zip);
}
} else {
return false;
}
return true;
}
示例10: unpackInto
function unpackInto($file_path, $dir_path)
{
$zip = zip_open($file_path);
if (!is_dir($dir_path)) {
throw new Exception($dir_path . ' should be a directory but isn\'t.');
}
if ($zip) {
while ($zip_entry = zip_read($zip)) {
zip_entry_open($zip, $zip_entry);
if (substr(zip_entry_name($zip_entry), -1) == '/') {
//this $zip_entry is a directory. create it.
$zdir = substr(zip_entry_name($zip_entry), 0, -1);
mkdir($dir_path . '/' . $zdir);
} else {
$file = basename(zip_entry_name($zip_entry));
$fp = fopen($dir_path . '/' . zip_entry_name($zip_entry), "w+");
//echo zip_entry_name($zip_entry);
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
fwrite($fp, $buf);
fclose($fp);
}
}
zip_close($zip);
}
}
示例11: unzip
function unzip($file, $dir = 'unzip/')
{
if (!file_exists($dir)) {
mkdir($dir, 0777);
}
$zip_handle = zip_open($file);
if (is_resource($zip_handle)) {
while ($zip_entry = zip_read($zip_handle)) {
if ($zip_entry) {
$zip_name = zip_entry_name($zip_entry);
$zip_size = zip_entry_filesize($zip_entry);
if ($zip_size == 0 && $zip_name[strlen($zip_name) - 1] == '/') {
mkdir($dir . $zip_name, 0775);
} else {
@zip_entry_open($zip_handle, $zip_entry, 'r');
$fp = @fopen($dir . $zip_name, 'wb+');
@fwrite($fp, zip_entry_read($zip_entry, $zip_size), $zip_size);
@fclose($fp);
@chmod($dir . $zip_name, 0775);
@zip_entry_close($zip_entry);
}
}
}
return true;
} else {
zip_close($zip_handle);
return false;
}
}
示例12: unzip
function unzip($zipfile)
{
$zip = zip_open($zipfile);
while ($zip_entry = zip_read($zip)) {
zip_entry_open($zip, $zip_entry);
if (substr(zip_entry_name($zip_entry), -1) == '/') {
$zdir = substr(zip_entry_name($zip_entry), 0, -1);
if (file_exists($zdir)) {
trigger_error('Directory "<b>' . $zdir . '</b>" exists', E_USER_ERROR);
return false;
}
mkdir($zdir);
} else {
$name = zip_entry_name($zip_entry);
if (file_exists($name)) {
trigger_error('File "<b>' . $name . '</b>" exists', E_USER_ERROR);
return false;
}
$fopen = fopen($name, "w");
fwrite($fopen, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)), zip_entry_filesize($zip_entry));
}
zip_entry_close($zip_entry);
}
zip_close($zip);
return true;
}
示例13: parse
public static function parse($filename)
{
$striped_content = '';
$content = '';
if (!$filename || !file_exists($filename)) {
return false;
}
$zip = zip_open($filename);
if (!$zip || is_numeric($zip)) {
return false;
}
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip, $zip_entry) == FALSE) {
continue;
}
if (zip_entry_name($zip_entry) != "content.xml") {
continue;
}
$content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
zip_close($zip);
$content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
$content = str_replace('</w:r></w:p>', "\r\n", $content);
$striped_content = strip_tags($content);
return $striped_content;
}
示例14: load_sheet
function load_sheet($sheet_index)
{
$this->zip = zip_open($this->xlsx);
if ($this->zip) {
while ($zip_entry = zip_read($this->zip)) {
if (zip_entry_name($zip_entry) == 'xl/worksheets/sheet' . $sheet_index . '.xml') {
// 실제 로드되는 파일
if (zip_entry_open($this->zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$arr = simplexml_load_string($buf);
$this->rows =& $arr->sheetData->row;
$this->rowsize = sizeof($this->rows);
// dimension 을 파싱해서 써도 되지만 구찬아서.;
if ($this->rowsize > 0) {
$this->colsize = (int) array_pop(explode(":", (string) $this->rows[0]['spans']));
// 1:7 이런식으로 값이 들어있음.
} else {
$this->colsize = 0;
}
zip_entry_close($zip_entry);
}
// if
}
}
// while
}
// if this zip
}
示例15: read_docx
private function read_docx()
{
$striped_content = '';
$content = '';
$zip = zip_open($this->filename);
if (!$zip || is_numeric($zip)) {
return false;
}
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip, $zip_entry) == FALSE) {
continue;
}
if (zip_entry_name($zip_entry) != "word/document.xml") {
continue;
}
$content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
// end while
zip_close($zip);
$content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
$content = str_replace('</w:r></w:p>', "\r\n", $content);
$striped_content = strip_tags($content);
return $striped_content;
}