Я знаю, что это глупо, но у меня есть ситуация, когда я создаю меню в разных папках. И я попытался создать baseurl для меню.
function getBaseUrl()
{
$currentPath = $_SERVER['PHP_SELF'];
$pathInfo = pathinfo($currentPath);
$hostName = $_SERVER['HTTP_HOST'];
$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';
return $protocol.$hostName.$pathInfo['dirname']."/";
}
Используйте базовый URL как <?php echo getBaseUrl(); ?>
, Моя проблема:
Пусть у меня есть меню ааа bbb ccc ddd. И страница aaa
меню внутри folder1/page1.php
страница из bbb
меню внутри folder2/page2.php
, Я не могу уйти от aaa
меню для bbb
меню.
У кого-нибудь есть идея? пожалуйста предложите
Вы можете создать массив со списком страниц, которые вы проиндексировали по метке:
function getBaseUrl($naviItem)
{
var $navigation = array(
'aaa_menu' => '/folder1/page1.php',
'bbb_menu' => '/folder2/page2.php'
);
//$currentPath = $_SERVER['PHP_SELF'];
//$pathInfo = pathinfo($currentPath);
$hostName = $_SERVER['HTTP_HOST'];
$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';
// return the path relative to the passed navitem
return $protocol.$hostName.$navigation[$naviItem];
}
Затем в своем HTML вы передаете эту метку относительно элемента навигации, для которого вы хотите получить baseURL:
<a href="<?php echo getBaseUrl('aaa_menu'); ?>">aaa</a>
<a href="<?php echo getBaseUrl('bbb_menu'); ?>">bbb</a>
Привет Shrestha это очень просто, просто определить константу и использовать
define('DOMAIN_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/projectname/');
А при настройке ссылок —
<a href="<?php echo DOMAIN_URL; ?>/folder1/page1.php">aaa</a>
<a href="<?php echo DOMAIN_URL ?>/folder2/page2.php">bbb</a>