Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
immortalist
/
wp-content
/
plugins
/
duplicator
/
src
/
Libs
/
DupArchive
/
Utils
:
DupArchiveScanUtil.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * * @package Duplicator * @copyright (c) 2021, Snapcreek LLC */ namespace Duplicator\Libs\DupArchive\Utils; use Duplicator\Libs\Snap\SnapJson; use Exception; use stdClass; /** * Description of class * * @author Robert */ class DupArchiveScanUtil { /** * Get scan * * @param string $scanFilepath scan file path * * @return void */ public static function getScan($scanFilepath) { DupArchiveUtil::tlog("Getting scen"); $scan_handle = fopen($scanFilepath, 'r'); if ($scan_handle === false) { throw new Exception("Can't open {$scanFilepath}"); } $scan_file = fread($scan_handle, filesize($scanFilepath)); if ($scan_file === false) { throw new Exception("Can't read from {$scanFilepath}"); } $scan = json_decode($scan_file); if (!$scan) { throw new Exception("Error decoding scan file"); } fclose($scan_handle); return $scan; } /** * Get scan object * * @param string $sourceDirectory folder to scan * * @return stdClass */ public static function createScanObject($sourceDirectory) { $scan = new stdClass(); $scan->Dirs = DupArchiveUtil::expandDirectories($sourceDirectory, true); $scan->Files = DupArchiveUtil::expandFiles($sourceDirectory, true); return $scan; } /** * Scan folder and add result to scan file * * @param string $scanFilepath scan file * @param string $sourceDirectory folder to scan * * @return void */ public static function createScan($scanFilepath, $sourceDirectory) { DupArchiveUtil::tlog("Creating scan"); $scan = self::createScanObject($sourceDirectory); $scan_handle = fopen($scanFilepath, 'w'); if ($scan_handle === false) { echo "Couldn't create scan file"; die(); } $jsn = SnapJson::jsonEncode($scan); fwrite($scan_handle, $jsn); return $scan; } }