Как обрабатывать включенные ссылки в PHP? - PullRequest
2 голосов
/ 06 ноября 2010

Я хочу включить меню в мои php-страницы.Как это:

в index.php

require_once 'includes/menu.php';

в dir / index.php

require_once 'includes/menu.php';

в menu.php У меня есть:

<a href='link1.php'>Link 1</a>
<a href='link2.php'>Link 2</a>
<a href='link3.php'>Link 3</a>

Проблема в том, что путь должен быть разным для подкаталога и корня.Как я могу справиться с этим, чтобы вывод составил link1.php для индекса и .. / link1.php для подкаталогов?

Я нашел эту ссылку, но вопрос не очень понятен, поэтому я не знаю, связано ли это: Изменить относительные пути ссылки для включенного содержимого в PHP

Ответы [ 2 ]

6 голосов
/ 06 ноября 2010

Вот одна мысль: использовать абсолютные пути.Если указать href как /link1.php, то это будет ссылка на http://www.yourdomain.com/link1.php, независимо от того, в каком подкаталоге вы находитесь.

Поскольку я не знаю подробностей вашей ситуации, это может оказаться неприемлемым решением.Просто поместите его туда.

Если ваше меню используется в разных подкаталогах для фактической ссылки на разные местоположения, однако, например, используется в /foo/sub/index.php для обозначения /foo/link1.php и также используется в /bar/sub/index.php для обозначениядо /bar/link1.php, тогда может пригодиться базовый тег HTML .

0 голосов
/ 06 ноября 2010

Я бы порекомендовал определить «базовый» URL-адрес как часть конфигурации приложения и добавить к нему префикс любых ссылок.

(Примечание: вы можете рассчитать базовый URL во время выполнения, но для разных частей приложения нужна другая логика, если только корневой каталог вашего приложения не является постоянным, например,

function get_app_root($fromthis)
{
   if (basename(fromthis)=='myapproot') {
       return $fromthis;
   }
   if (dirname($fromthis)=='') {
       return false;
   }
   return get_app_root(dirname($fromthis));
}

$appbase=get_app_root(__FILE__);
if ($appbase===false) {
    die "Whoops!";
}

(потребуется несколько настроек для обработки URL-адресов, а не путей)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...