В PHP есть функция, которая может выполнять логику, похожую на realpath (), но на файлы, которые могут не существовать в файловой системе? Очевидно, что он не сможет разрешать ссылки и т. Д., Но моя цель – проверить, находится ли путь, предоставленный пользователем, в определенном каталоге (или поддиректории этого каталога) без учета учетной записи /../ ./ типы путей проблемы самостоятельно. Вызов realpath был бы идеальным, если бы он не возвращал false, когда файл не существует.
Если ваша проблема связана только с файлами, попробуйте:
function unrealpath($path){ $rp = realpath(dirname($path)); if( false === $rp ) return false; return $rp.basename($path); }
Если у вас есть проблемы с существующими каталогами или нет, это не сработает.
Если вам нужно только удалить /../, самонаписанная функция не будет такой сложной. Просто разделите строку на массив, проведите по массиву и вставьте значения в новый. Если вы нажмете … удалить последний элемент, вставленный в новый массив. Затем объедините второй массив обратно в строку.