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);
}

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽