Redaxscript\Filter\Path::sanitize PHP 메소드

sanitize() 공개 메소드

sanitize the path
부터: 2.6.0
public sanitize ( string $path = null, string $separator = '/' ) : string
$path string target path
$separator string directory separator
리턴 string
    public function sanitize($path = null, $separator = '/')
    {
        $output = urldecode($path);
        $output = str_replace([' ', '..'], null, $output);
        $output = preg_replace('~' . $separator . '+~', $separator, $output);
        $output = ltrim($output, '.');
        $output = trim($output, $separator);
        return $output;
    }

Usage Example

예제 #1
0
 /**
  * render
  *
  * @since 2.6.0
  *
  * @param string $directory
  * @param array $optionArray
  *
  * @return string
  */
 public static function render($directory = null, $optionArray = [])
 {
     $output = null;
     $outputItem = null;
     /* html elements */
     $listElement = new Html\Element();
     $listElement->init('ul', ['class' => self::$_configArray['className']['list']]);
     /* handle option */
     if ($optionArray['hash']) {
         $optionArray['hash'] = '#' . $optionArray['hash'];
     }
     /* handle query */
     $directoryQuery = Request::getQuery('directory');
     $directoryQueryArray = explode('/', $directoryQuery);
     /* parent directory */
     if ($directoryQueryArray[0] === $directory && $directory !== $directoryQuery) {
         $pathFilter = new Filter\Path();
         $rootDirectory = $directory;
         $directory = $pathFilter->sanitize($directoryQuery);
         $parentDirectory = $pathFilter->sanitize(dirname($directory));
         $outputItem .= self::_renderParent($rootDirectory, $parentDirectory, $optionArray);
     }
     /* has directory */
     if (is_dir($directory)) {
         $outputItem .= self::_renderItem($directory, $optionArray);
         /* collect list output */
         if ($outputItem) {
             $output = $listElement->html($outputItem);
         }
     } else {
         self::setNotification('error', Language::get('directory_not_found') . Language::get('colon') . ' ' . $directory . Language::get('point'));
     }
     return $output;
 }
All Usage Examples Of Redaxscript\Filter\Path::sanitize