У меня есть следующий код, который (1) получает имя страницы/раздела из URL-адреса (2) очищает строку, а затем присваивает ее переменной.
Мне было интересно, есть ли какие-либо предложения о том, как я могу улучшить этот код, чтобы он был более эффективным, возможно, с меньшим количеством операторов if/else.
Кроме того, любое предложение, как я могу закодировать это, чтобы оно учитывало x количество подкаталогов в структуре URL-адреса. Прямо сейчас я проверяю до 3 довольно ручным способом.
Я бы хотел, чтобы он обрабатывал любой URL-адрес, например: www.domain.com/level1/level2/level3/level4/levelx/...
Вот мой текущий код:
<?php
$prefixName = 'www : ';
$getPageName = explode("/", $_SERVER['PHP_SELF']);
$cleanUpArray = array("-", ".php");
for($i = 0; $i < sizeof($getPageName); $i++) {
if ($getPageName[1] == 'index.php')
{
$pageName = $prefixName . 'homepage';
}
else
{
if ($getPageName[1] != 'index.php')
{
$pageName = $prefixName . trim(str_replace($cleanUpArray, ' ', $getPageName[1]));
}
if (isset($getPageName[2]))
{
if ( $getPageName[2] == 'index.php' )
{
$pageName = $prefixName . trim(str_replace($cleanUpArray, ' ', $getPageName[1]));
}
else
{
$pageName = $prefixName . trim(str_replace($cleanUpArray, ' ', $getPageName[2]));
}
}
if (isset($getPageName[3]) )
{
if ( $getPageName[3] == 'index.php' )
{
$pageName = $prefixName . trim(str_replace($cleanUpArray, ' ', $getPageName[2]));
}
else
{
$pageName = $prefixName . trim(str_replace($cleanUpArray, ' ', $getPageName[3]));
}
}
}
}
?>