第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

文件存在但收到無法打開流的警告:沒有這樣的文件或目錄

文件存在但收到無法打開流的警告:沒有這樣的文件或目錄

PHP
白板的微信 2022-10-09 17:24:50
<?php$arch_filename = "myzipx.zip";$dest_dir = "./dest";if (!is_dir($dest_dir)) {    if (!mkdir($dest_dir, 0755, true))        die("failed to make directory $dest_dir\n");}$zip = new ZipArchive;if (!$zip->open($arch_filename))    die("failed to open $arch_filename");for ($i = 0; $i < $zip->numFiles; ++$i) {    $path = $zip->getNameIndex($i);    $ext = pathinfo($path, PATHINFO_EXTENSION);    if (!preg_match('/(?:pdf)/i', $ext))        continue;    $dest_basename = pathinfo($path, PATHINFO_BASENAME);    echo $path, PHP_EOL;    copy("$path", "$dest_dir/{$dest_basename}");}$zip->close();?>發(fā)生了一件奇怪的事情,因為這段代碼只工作了 15 分鐘,現(xiàn)在拋出警告(?。┚妫簭椭疲╩yzipx/x/x.pdf):無法打開流:第 21 行的 C:\wamp64\www\zip_ex\x\zip_img.php 中沒有這樣的文件或目錄但該文件存在并回顯正確的文件名。不明白似乎是什么問題..任何幫助表示贊賞。
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

你的嘗試copy()是正確的。與ZipArchive::extractTo()(提取并在目標中創(chuàng)建子文件夾)不同,該方法copy()只是將指定文件從存檔復制/提取到目標。


這個例子應該工作:


$archive = "testarchive.zip";

$dest_dir = "./dest";

if (!is_dir($dest_dir)) {

    if (!mkdir($dest_dir, 0755, true)) die("failed to make directory $dest_dir\n");

}

$zip = new ZipArchive;

if (!$zip->open($archive)) die("failed to open $archive");


for($i = 0; $i < $zip->numFiles; $i++) {

    $file_name = $zip->getNameIndex($i);

    $file_info = pathinfo($file_name);

    $file_ext = pathinfo($file_name, PATHINFO_EXTENSION);

    if (preg_match('/pdf/i', $file_ext)) {

        copy("zip://".$archive."#".$file_name, $dest_dir.'/'.$file_info['basename']);

    }

}                  

$zip->close();

測試檔案結構:


xxxxx@xxxxxx:~/Documents$ tree testarchive

testarchive

└── test

    └── blubb

        └── test.pdf

然后將該文件夾testarchive壓縮為testarchive.zip.


運行上面的代碼后:


xxxxx@xxxxxx:~/Documents$ tree dest

dest

└── test.pdf


查看完整回答
反對 回復 2022-10-09
?
尚方寶劍之說

TA貢獻1788條經(jīng)驗 獲得超4個贊

您需要從 zip 存檔中提取。


for ($i = 0; $i < $zip->numFiles; ++$i) {

    $path = $zip->getNameIndex($i);

    $ext = pathinfo($path, PATHINFO_EXTENSION);

    if (preg_match('/pdf/i', $ext)) {

        $dest_basename = pathinfo($path, PATHINFO_BASENAME);

        echo $path, PHP_EOL;

        file_put_contents("$dest/$dest_basename", $zip->getFromIndex($i))

    }

}


查看完整回答
反對 回復 2022-10-09
  • 2 回答
  • 0 關注
  • 149 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號