현재 위치: > 최신 기사 목록> OB_START ()와 함께 Zip_Read를 사용하여 ZIP 파일의 압축 압축 내용을 동적으로 표시하는 방법은 무엇입니까?

OB_START ()와 함께 Zip_Read를 사용하여 ZIP 파일의 압축 압축 내용을 동적으로 표시하는 방법은 무엇입니까?

M66 2025-06-15

2. 구현 아이디어

  1. zip_open ()을 사용하여 zip 파일을 엽니 다.

  2. 각 파일의 포인터를 zip로 반복하고 zip_read ()를 사용하여 파일 정보를 얻습니다.

  3. 각 파일에서 zip_entry_open ()을 호출하여 파일 스트림을여십시오.

  4. OB_START ()를 사용하여 파일 컨텐츠 출력을 캡처합니다.

  5. 파일 내용을 읽고 출력 한 다음 OB_GET_CLEAN ()을 사용하여 버퍼 컨텐츠를 얻습니다.

  6. 파일 스트림과 지퍼 리소스를 닫습니다.


3. 샘플 코드

 <?php
$zipPath = 'http://m66.net/sample.zip'; // 여기에 사용되는 것 m66.net 도메인 이름 예제로

// 열려 있는 ZIP 문서
$zip = zip_open($zipPath);
if (!is_resource($zip)) {
    die('无法열려 있는 ZIP 문서');
}

echo "<h2>ZIP 문서内容列表:</h2>";

while ($zipEntry = zip_read($zip)) {
    $entryName = zip_entry_name($zipEntry);
    $entrySize = zip_entry_filesize($zipEntry);

    echo "<h3>문서名: {$entryName}</h3>";
    echo "<p>문서大小: {$entrySize} 바이트</p>";

    if (zip_entry_open($zip, $zipEntry, "r")) {
        // 출력 버퍼링을 켭니다
        ob_start();

        // 读取문서内容并输出
        while ($content = zip_entry_read($zipEntry, 1024)) {
            echo htmlspecialchars($content);
        }

        // 버퍼 컨텐츠를 얻으십시오
        $fileContent = ob_get_clean();

        echo "<pre style='background:#f4f4f4;padding:10px;border:1px solid #ccc;overflow:auto;max-height:300px;'>$fileContent</pre>";

        zip_entry_close($zipEntry);
    } else {
        echo "<p>无法열려 있는此문서内容</p>";
    }
}

zip_close($zip);
?>

IV. 설명

  • 실제로 사용하면 zip_open ()은 서버가 원격 파일 액세스를 허용하는 한 로컬 파일 경로 또는 URL을 지원합니다 ( allow_url_fopen 이 활성화 됨).

  • 이 예에서 ZIP 파일 주소 도메인 이름은 요구 사항을 충족하는 M66.net을 사용합니다.

  • OB_START ()는 직접 출력이 페이지 구조를 오염시키는 것을 방지하기 위해 Zip_entry_Read () 에서 읽은 내용을 캡처하는 데 사용되며 유연하게 처리되고 출력 될 수 있습니다.

  • 보안의 경우, HTML 주입을 방지하기 위해 컨텐츠 부분이 htmlspecialchars () 로 빠져 나옵니다.

  • 이 예제는 텍스트와 같은 파일 내용을보기에 적합합니다. 이진 파일의 직접 출력으로 인해 코드가 나오거나 브라우저 예외가 발생할 수 있습니다.


요약 : PHP의 zip_read ()ob_start ()를 사용하여 zip 파일에서 각 파일의 내용을 동적으로 읽고 캡처하여 압축 패키지에 정보를 미리 표시하지 않고 정보를 표시하는 기능을 실현하여 온라인 브라우징, 미리보기 또는 처리 및 사용자 경험을 개선하는 데 편리합니다.