RarEntry::getCrc

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

RarEntry::getCrc()

(PECL rar >= 0.1)

RarEntry::getCrc() — Hämta CRC för posten

Beskrivning

public RarEntry::getCrc(): string

Returnerar en hexadecimal strängrepresentation av CRC för arkivposten.

Parameterlista

Denna funktion har inga parametrar.

Returnerar

Returnerar CRC för arkivposten eller false vid fel.

Ändringslogg

Version Beskrivning
PECL rar 2.0.0 Denna metod returnerar nu korrekta värden för flervolymarkiv.

Användarnoteringar

RarEntry::getCrc() returnerar en hex-sträng med gemener (t.ex. 'bf6fa85c'), samma som hash_...-funktionerna, och använder samma polynom som algoritmen 'crc32b'. Detta kan användas för att kontrollera CRC efter att ha packat upp en ström:

Exempel

Exempel #1 Kontrollera CRC efter att ha packat upp en ström

<?php
  $archive_name = 'archive.rar';

  $entry_name = 'someentry.ext';

  $rar = RarArchive::open($archive_name) or die("Cannot open archive $archive_name");

  if ($rar->isBroken()) {
    die("The archive is broken!");
  }

  $entry = $rar->getEntry($entry_name) or die("Cannot find entry $entry_name");

  $stream = $entry->getStream() or die("Cannot open stream");

  $crc = hash_init('crc32b'); // Initierar hashfunktionen

  while (!feof($stream)) {
    $s = fread($stream, 8192);
    if ($s === false) {
        // Fel vid läsning
      die('Error reading the compressed file.');
    }
    hash_update($crc, $s); // Uppdaterar hashvärdet

    // ...
    // Gör vad som helst med $s
  }

  fclose($stream);

  $got_crc = hash_final($crc);
  $need_crc = $entry->getCrc();

  print("Got CRC: $got_crc" . PHP_EOL);
  print("Need CRC: $need_crc" . PHP_EOL);

  if ($got_crc != $need_crc) {
    // Återställ
    print("Sorry guys, the file was incorrect!" . PHP_EOL);
  } else {
    print("Everything is ok" . PHP_EOL);
  }
?>

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/rarentry.getcrc.php
PHP Funktioner Funktionsreferens Komprimerings- och arkivtillägg Rar_—_Rar_Arkivering


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.