Server : nginx/1.20.1 System : Linux iZ2ze9ojcl78uluczwag69Z 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64 User : www ( 1000) PHP Version : 7.3.28 Disable Function : passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/0531yanglao.com/vendor/league/flysystem/src/Util/ |
<?php namespace League\Flysystem\Util; use League\Flysystem\Util; /** * @internal */ class ContentListingFormatter { /** * @var string */ private $directory; /** * @var bool */ private $recursive; /** * @var bool */ private $caseSensitive; /** * @param string $directory * @param bool $recursive */ public function __construct($directory, $recursive, $caseSensitive = true) { $this->directory = rtrim($directory, '/'); $this->recursive = $recursive; $this->caseSensitive = $caseSensitive; } /** * Format contents listing. * * @param array $listing * * @return array */ public function formatListing(array $listing) { $listing = array_filter(array_map([$this, 'addPathInfo'], $listing), [$this, 'isEntryOutOfScope']); return $this->sortListing(array_values($listing)); } private function addPathInfo(array $entry) { return $entry + Util::pathinfo($entry['path']); } /** * Determine if the entry is out of scope. * * @param array $entry * * @return bool */ private function isEntryOutOfScope(array $entry) { if (empty($entry['path']) && $entry['path'] !== '0') { return false; } if ($this->recursive) { return $this->residesInDirectory($entry); } return $this->isDirectChild($entry); } /** * Check if the entry resides within the parent directory. * * @param array $entry * * @return bool */ private function residesInDirectory(array $entry) { if ($this->directory === '') { return true; } return $this->caseSensitive ? strpos($entry['path'], $this->directory . '/') === 0 : stripos($entry['path'], $this->directory . '/') === 0; } /** * Check if the entry is a direct child of the directory. * * @param array $entry * * @return bool */ private function isDirectChild(array $entry) { return $this->caseSensitive ? $entry['dirname'] === $this->directory : strcasecmp($this->directory, $entry['dirname']) === 0; } /** * @param array $listing * * @return array */ private function sortListing(array $listing) { usort($listing, function ($a, $b) { return strcasecmp($a['path'], $b['path']); }); return $listing; } }