예제 #1
0
파일: FSTest.php 프로젝트: VijitCoder/Kira
 public function test_hasDots()
 {
     $this->assertTrue(FS::hasDots('./path/'), 'Есть точки на текущий каталог');
     $this->assertTrue(FS::hasDots('../../path/'), 'Есть точки, переход на два каталога выше');
     $this->assertTrue(FS::hasDots('public/../protected/lib/'), 'Есть точки перехода внутри пути');
     $this->assertFalse(FS::hasDots('public/.hidden/path/'), 'Точка есть, но не управляющая. Норм');
 }
예제 #2
0
 /**
  * Пример кастомного валидатора
  *
  * Дезинфекция каталога. Валидатор для типа "filter_var".
  *
  * Заменяем слеши на прямые, в конце ставим слеш. Проверяем каталог на попытки переходов типа "../path/"
  * или "some/../../path/". Это недопустимо.
  *
  * @param string $value проверяемое значение
  * @return false|string
  */
 public static function normalizePath($value)
 {
     if ($value) {
         $value = trim(str_replace('\\', '/', $value), '/') . '/';
         if (FS::hasDots($value)) {
             return false;
         }
     }
     return $value;
 }