public function createFileInfos($filePath) { $file = SUpdateServer::FILES_DIRECTORY . "/" . urldecode($filePath); $handle = fopen($file, "rb"); $fsize = filesize($file); $contents = fread($handle, $fsize); $byteArray = unpack("N*", $contents); return array("fileRelativePath" => $filePath, "murmur3" => murmurhash3($byteArray)); }
require '../vendor/autoload.php'; # instantiate the backup $backup = new Backup([]); $backup->addFolder('../vendor')->compressWith('zip')->saveAt(['local']); var_dump("Backup: {$backup}"); $file = new SPLFileInfo(realpath('../src/Backup.php')); $inspected = $backup->inspect(); echo '<ul>'; foreach ($inspected as $class => $data) { echo '<li><h2><code>' . $class . '</h2></code>'; echo '<ul>'; foreach ($data as $key => $values) { echo '<li><h3><code>' . $key . '</h3></code>'; echo '<ul id="' . $key . '">'; foreach ($values as $value) { if ($value instanceof \ReflectionProperty) { $value->setAccessible(true); echo '<li><h4><code>' . $value->getName() . '</code>' . ($value->isPublic() ? ' [public]' : '') . '</h4><pre>' . json_encode($value->getValue($backup), JSON_PRETTY_PRINT) . '</pre>'; } else { echo '<li><h4><code>' . $value->getName() . '</code>' . ($value->isPublic() ? ' [public]' : '') . '</h4><pre>' . $value . '</pre></li>'; } } echo '</ul>'; } echo '</ul>'; echo '</li>'; } echo '</ul>'; echo '<h2>Hash von backup.php: <code>'; echo murmurhash3($file->getRealPath() . $file->getSize() . $file->getCTime()); echo '</code></h2>';
/** * __toString function. * returns the hash set as a hashed string representation. * * @access public * @return string */ public function __toString() { return murmurhash3(json_encode($this->hashSet)); }
/** * @param Buffer $data * @param int $seed * @return Buffer */ public static function murmur3(Buffer $data, $seed) { return new Buffer(pack("N", base_convert(murmurhash3($data->getBinary(), (int) $seed), 32, 10))); }