X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Разные директории
polermo_mw
polermo_mw
Topic Starter сообщение 12.11.2009, 16:40; Ответить: polermo_mw
Сообщение #1


Страницы сайта разложены по разным директориям (включая sidebar, header и footer - лежат в папке blocks), а файлы index.php, mail.php лежат в корневой директории сайта. При этом директорий на сайте может быть много и они могут быть вложены друг в друга. Соответственно путь к файлам будет из этих директорий разный, т.к. чтобы попасть в корневую директорию нам придется подниматься на несколько уровней вверх в зависимости от степени вложенности директорий.

Если бы все файлы лежали в одной директории, то, например, <?php include("blocks/header.php"); ?> включаем на кажд. странице и все ОК...


А как быть, когда файлы в разных директориях и на всех страницах указать одинаковые ссылки к файлам sidebar, header и footer???
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 13.11.2009, 4:16; Ответить: gaaarfild
Сообщение #2


А в чем практическая полезность такого метода хранения?

Можете сохранить в файле конфига имя домена и указывать потом просто абсолютный путь к файлу.
Например если файл храниться в папке /blocks, тогда вы берете из файла конфиг переменную, которая хранит домен
$main = "http://example.com"; и в вашем присоединяющем скрипте пишете
<?php include($main."/blocks/header.php"); ?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
polermo_mw
polermo_mw
Topic Starter сообщение 13.11.2009, 14:18; Ответить: polermo_mw
Сообщение #3


а если выложить sidebar, header и footer в ту же директорию, что и index.php и путь к файлам отсчитывать от корня диска?

так можно каким-то образом?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 13.11.2009, 18:33; Ответить: gaaarfild
Сообщение #4


Ну если у вас будет абсолютный путь, то он будет обращаться именно туда, куда нужно. В остальных случаях либо не получится, либо надо будет писать какой нибудь определяющий скрипт.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 16.11.2009, 1:28; Ответить: ZiTosS
Сообщение #5


polermo, посмотрите на любую CMS. Там обязательно присутствует переменная или константа с полным путём до корня системы.
У вас есть 2 варианта:
1) Писать путь относительно корня, но тут проблема если у вас скрипт изначально будет располагаться не в корне, а в какой-то директории, тогда и её писать везде придётся.
2) Опредлить глобальную переменную пути к корневому каталогу системы и юзать уже её. Конечно можно даже скрипт написать по автоматическому определению этого пути.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
polermo_mw
polermo_mw
Topic Starter сообщение 20.11.2009, 15:12; Ответить: polermo_mw
Сообщение #6


ок, спасибки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
autotype
autotype
сообщение 23.11.2009, 11:56; Ответить: autotype
Сообщение #7


я всегда делаю так
[php]$doc_root = $_SERVER['DOCUMENT_ROOT']; // полный путь к файлу
require_once($doc_root.'/inc/design.php');
require_once($doc_root.'/inc/config.php');[/php]
теперь можеш и не думать о путе к файлу :blink:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 23.11.2009, 20:35; Ответить: ZiTosS
Сообщение #8


кипятильник, ты не прав...
$_SERVER['DOCUMENT_ROOT'] - возвращает путь до корня сервера или до виртуального хоста.
А представим ситуацию, если у тебя скрипт относительно корня лежит ещё в какой-то папке, что же тогда? Твой скрипт просто перестанет работать.
Решение будет более универсальным. Надо в файле, который будет лежать в корне исполнения скрипта вписать данный код
[php]$site_path = realpath(dirname(__FILE__) . "/") . "/";
define ('SITE_PATH', $site_path);[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
autotype
autotype
сообщение 23.11.2009, 20:40; Ответить: autotype
Сообщение #9


почему я не прав?
все правильно если файл лежит в папке просто тогда (ка и на примере)
require_once($doc_root.'/ПАПКА_1/ПАПКА_2/design.php');
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 23.11.2009, 21:28; Ответить: ZiTosS
Сообщение #10


кипятильник, вот именно что везде дописывать эти 2 папки. И это неправильно. Надо исчислять путь от корня его исполнения.
К примеру у вас будет форум лежать в папке /forum/, вам наверное было бы удобно в вашем движке форума из 1000 файлов дописывать данную папку.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлы«Взрываем языковые преграды» – переводим любые тексты + копирайт на разные языки
133 Nefilim11 63612 11.2.2024, 11:08
автор: Nefilim11
Открытая тема (нет новых ответов) Обзоры на разные проекты
Нужен копирайтер для написания обзоров
0 tef 1120 30.4.2023, 22:28
автор: tef
Горячая тема (нет новых ответов) Продам контент из веб архива (темы разные)
недорого
43 GigArt 14031 1.2.2023, 22:41
автор: Livestory
Открытая тема (нет новых ответов) Ищем авторов для постоянного сотрудничества до 100р/килознак (разные тематики)
4 Цензор 2441 9.12.2022, 10:08
автор: mark2013
Открытая тема (нет новых ответов) Готовые уник seo статьи, разные темы
0 abafons 1792 10.9.2022, 8:45
автор: abafons


 



RSS Текстовая версия Сейчас: 20.4.2024, 14:16
Дизайн