RarEntry::getCrc: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== RarEntry::getCrc() == (PECL rar >= 0.1) '''RarEntry::getCrc() — Hämta CRC för posten''' === Beskrivning === <pre> public RarEntry::getCrc(): string </pre> Returnerar en hexadecimal strängrepresentation av CRC för arkivposten. === Parameterlista === Denna funktion har inga parametrar. === Returnerar === Returnerar CRC för arkivposten eller <code>false</code> vid fel. === Ändringslogg === {| class="wikitable" |- ! Version !! Beskrivning |- | PECL rar 2.0.0...') |
(Ingen skillnad)
|
Versionen från 8 december 2024 kl. 18.02
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);
}
?>
Se även
- RarEntry::getStream() - Hämta filhanterare för posten
- RarArchive::getEntry() - Hämta enskild post från RAR-arkivet
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.deflate-init.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.