PHP.mk документација

RarEntry::getCrc

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

rarentry.getcrc.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека rarentry.getcrc.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
RarEntry::getCrc

Референца за `rarentry.getcrc.php` со подобрена типографија и навигација.

rarentry.getcrc.php

RarEntry::getCrc

(PECL rar >= 0.1)

RarEntry::getCrcДобијте CRC на записот

= NULL

public RarEntry::getCrc(): string

Враќа хексадецимална текстуална репрезентација на CRC на записот во архивата.

Параметри

Оваа функција нема параметри.

Вратени вредности

Враќа CRC на записот во архивата или false при грешка.

Дневник на промени

Верзија = NULL
Враќа го името на записот како стринг, или Овој метод сега враќа точни вредности за повеќетомни архиви.

Белешки од корисници 1 белешка

aterlux на mail dot ru
пред 7 години
RarEntry::getCrc() returs a lowercase hex-string (e.g. 'bf6fa85c') the same as hash_... functions, using the same polynomial as 'crc32b' algorithm.
So, it can be used to check CRC after a stream unpacking:

<?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'); // Initializing the hash function

  while (!feof($stream)) {
    $s = fread($stream, 8192);
    if ($s === false) {
        // Error reading (do not use fread(...) or die(...), because fread can return '0'!)
      die('Error reading the compressed file.');
    }
    hash_update($crc, $s); // updating the hash

    // ...
    // Do whatever with the $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) {
    // rollback
    print("Sorry guys, the file was incorrect!" . PHP_EOL);
  } else {
    print("Everything is ok" . PHP_EOL);
  }
?>
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.