红穆笔记
首頁 語言筆記 PclZip替代ZipArchive,解決PHP報錯問題!
語言筆記 PHP

PclZip替代ZipArchive,解決PHP報錯問題!

PclZip替代ZipArchive,解决PHP报错问题!
PclZip是一個基於PHP的ZIP歸檔庫,可以輕鬆地創建、讀取和提取ZIP文件。與ZipArchive類不同,PclZip不需要PHP的Zip擴展程序。 折騰一下午,結果還是選擇拋棄掉ZipArchive,真是佛了! 原來的需求是: 《PHP遠程下載zip並解壓覆蓋指定目錄,如果指定目錄不存在,那麼便創建目錄,如果目錄存在則清空目錄,解壓的zip文件中,含有中文名的文件
由於PclZip官方已經跑路了,可能跑路了吧,我去找的時候,反正已經沒了,所以這裏準備了一個找到的PclZip包,留着備用一下,其實也就是一個PHP文件!
將裏面的函數替換爲以下,即可:

🔒 隱藏內容:登錄後可查看

function downloadAndExtractZip($remoteZipUrl, $localDir) {
  // 如果本地目錄不存在,創建目錄
  if (!file_exists($localDir)) {
    mkdir($localDir, 0777, true);
  }

  // 如果本地目錄存在,清空目錄
  if (file_exists($localDir) && is_dir($localDir)) {
    $files = glob($localDir . '/*'); // 獲取目錄下的所有文件
    foreach ($files as $file) {
      if (is_file($file)) {
        unlink($file); // 刪除文件
      }
    }
  }

  // 下載zip文件到本地臨時文件
  $tempFile = tempnam(sys_get_temp_dir(), 'zip');
  $fp = fopen($tempFile, 'w');
  $ch = curl_init($remoteZipUrl);
  curl_setopt($ch, CURLOPT_FILE, $fp);
  curl_exec($ch);
  curl_close($ch);
  fclose($fp);

  // 解壓zip文件到本地目錄
  $zip = new PclZip($tempFile);
  $extractedFiles = $zip->extract(PCLZIP_OPT_PATH, $localDir, PCLZIP_OPT_SET_CHMOD, 0777);
  if ($extractedFiles != 0) {
    unlink($tempFile); // 刪除本地臨時文件
    return true;
  } else {
    unlink($tempFile); // 刪除本地臨時文件
    return false;
  }
}

下載地址
☁️
下載 #1
百度網盤
立即下載
微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 141
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 190
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232
php 字符串中是否包含指定字符串的多种方法

php 字符串中是否包含指定字符串的多種方法 語言筆記 PHP

strstrstrstr() 函數搜索一個字符串在另一個字符串中的第一次出現。該函數返回字符串的其餘部分(從匹配點)。如果未找到所搜索的字符串,則返回 false。代碼如下:<?php $email = 'user@example.com'; $domain = strstr($email, …
👁 138

推薦閱讀

营销型家装油漆材料网站模板 0898

營銷型家裝油漆材料網站模板 0898 實用收藏 易優模板

此套eyoucms模板適用於營銷型家裝油漆材料行業,設計風格家裝營銷,能夠展示油漆產品、家裝方案、色彩搭配及品牌故事。有助於塗料品牌在線上展示產品,吸引裝修公司與業主。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS…
👁 50
(PC+WAP)蓝色钢结构机械五金网站pbootcms模板 营销型工程建筑基建网站源码下载 0115

(PC+WAP)藍色鋼結構機械五金網站pbootcms模板 營銷型工程建築基建網站源碼下載 0115 實用收藏 pbootcms模板

本套PbootCMS模板採用藍色風格,適用於鋼結構、機械五金及工程建築基建行業,支持PC和WAP端。設計風格硬朗穩重,能夠很好地展示鋼結構工程與五金產品。是基建施工或鋼結構企業在線上展示品牌實力與工程業績的優質選擇。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admi…
👁 33
响应式厨具用品网站模板 0899

響應式廚具用品網站模板 0899 實用收藏 易優模板

一款針對廚具用品行業的eyoucms響應式網站模板。設計風格現代實用,能夠展示廚具產品、廚房用品、品牌故事及空間搭配。有助於廚具品牌在線上展示產品,吸引家庭與餐飲客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS…
👁 57
(PC+WAP)蔬菜水果配送类网站pbootcms模板 蔬菜水果基地网站源码下载 0116

(PC+WAP)蔬菜水果配送類網站pbootcms模板 蔬菜水果基地網站源碼下載 0116 實用收藏 pbootcms模板

一款針對蔬菜水果配送及種植基地的PbootCMS網站模板,支持PC與WAP端訪問。設計風格清新綠色,能夠很好地展示農產品新鮮度與配送服務。模板內置產品展示與訂購諮詢模塊,有助於農業合作社或生鮮配送企業在線上拓展業務。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admi…
👁 49