Так сказать, у меня есть строка, подобная пути
$path = '/path/to/../../up/something.txt';
Есть ли способ, встроенный в PHP, для его анализа и создания URL-адреса без загрузки каталогов (../)?
Например
$path = parsePath('/path/to/../../up/something.txt'); // /up/something.txt
realpath($path);
Документы
PHP- realpath()
PHP realpath()
классный, но что, если вы хотите понять его, не обращаясь к файловой системе?
Я написал эту функцию, которая может возвращать путь с ../
и т. П., Рассчитанный на реальный путь.
Вероятно, он не обрабатывает все команды пути, поэтому дайте мне знать, если вы думаете, что я должен реализовать другой.
public function resolvePath($path) { while (strstr($path, '../')) { $path = preg_replace('/\w+\/\.\.\//', '', $path); } return $path; }
Регулярное выражение, которое я заимствовал у этого пользователя, внесло свой вклад .