Очистка путей к файлам в PHP - PullRequest
1 голос
/ 22 февраля 2012

Есть ли в PHP функция, которая может выполнять логику, аналогичную realpath (), но для файлов, которые могут не существовать в файловой системе? Очевидно, что он не сможет разрешать ссылки и т. Д., Но моя цель состоит в том, чтобы увидеть, находится ли путь, указанный пользователем, в определенном каталоге (или подкаталоге этого каталога) без учета /.././ пути типов вопросов самостоятельно. Вызов realpath был бы идеальным, если бы он не возвращал false, если файл не существует.

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Если вас интересуют только файлы, попробуйте:

function unrealpath($path){
  $rp = realpath(dirname($path));
  if( false === $rp )
    return false;
  return $rp.basename($path);
}

Если у вас есть опасения по поводу существующих или нет каталогов, это не сработает.

0 голосов
/ 22 февраля 2012

Если вам нужно только удалить /../ самостоятельно написанную функцию, это не будет так сложно.Просто разбейте строку на массив, итерируйте по массиву и вставьте значения в новый.Если вы нажмете .. удалите последний элемент, вставленный в новый массив.Затем объедините второй массив обратно в строку.

...