paulenot
@paulenot
IT Issue

Как правильно получить последний элемент пути на PHP?

Имеется путь /var/www/domain.com/pages/Стандартная библиотека Kotlin.html
Использую функцию pathinfo($str)['filename'] и получаю результат string(28) " библиотека Kotlin". Не могу понять, куда девается первое слово из пути.
Пол дня гуглю, множество статей, но не могу понять как проще обрезать последний участок пути.
Пробовал и другой метод:
$title = explode("/", $file_path); // Получаю путь в массиве
$title = ($title[-1] == 'index.html'? $title[-2] : $title[-1]); // если файл index.html, то вернуть каталог!
$title = (substr($title, -5) == '.html'? substr($title, 0, -5) : $title); // Если не индекс, то отрезать .html
var_dump($title);

Получаю то NULL, то bool(false). Подскажите пожалуйста, как получить последний участок текста без расширения файла.
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
paulenot
@paulenot Автор вопроса
IT Issue
Решил задачу таким образом:
if (pathinfo($file_path)['filename'] == 'index') {
// Если имя файла в пути index, то берем имя родительского каталога
	$title = explode('/', $file_path);
	$title = $title[count($title)-2];
	$title = ($title == 'pages'? 'Главная' : $title);
} else {
// Если имя файла не index, то берем название файла, отрезав .html (последние 5 символов)
	$title = substr(array_pop(explode('/', $file_path)), 0, -5);
}

Если есть предложения по оптимизации, буду рад их рассмотреть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы