За последние 24 часа нас посетили 17415 программистов и 1683 робота. Сейчас ищут 900 программистов ...

Проблема определения пути

Тема в разделе "PHP для новичков", создана пользователем zzzVolkzzz, 22 апр 2009.

  1. zzzVolkzzz

    zzzVolkzzz Активный пользователь

    С нами с:
    10 апр 2009
    Сообщения:
    26
    Симпатии:
    0
    Здраствуйте, такой вопрос. Мне надо записывать кеш файлы в папку которая лежит в корне сайта. Так вот как прописать жту корневую папку так чтоб, куда бы я не перенес скрипт он писал все время в эту папку?

    Как единственный вариант я решил сделать так $_SERVER['DOCUMENT_ROOT'].'/cache/
    Так правельно?

    И вопрос номер два, я на денвери пишу, а норм сервер еще в глаза не видел. Но знаю что есть в PHP настройка которая запрещает инклюдить файлы по URL, а только по абсолютному пути. Так вот ОБЫЧНО(то есть из вашего личного опыта) как на серваках прописана эта настройка?
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Не абсолютные, а относительные.
    ini_set('include_path', PATH).

    В вашем случае пропишите вместо $_SERVER['DOCUMENT_ROOT'].'/cache/' следующее:

    define('CACHE', dirname(__FILE__).'/cache/');
     
  3. zzzVolkzzz

    zzzVolkzzz Активный пользователь

    С нами с:
    10 апр 2009
    Сообщения:
    26
    Симпатии:
    0
    А чем такой вариант лучше? Мне надо жестко прописать одну папку, вот и использую абсолютный путь...
    Я хочу узнать преимущества и недостатки.
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Вот структура вашего сайта (просто допустим)

    Код (Text):
    1. root
    2.    |__cache
    3.    |    |__.
    4.    |
    5.    |__index.php
    Полный путь (с использованием DOCUMENT_ROOT будет .\root\cache
    Если вы, например, положите скрипт в папку myscript, то представим другую структуру:

    Код (Text):
    1. root
    2.    |__myscript
    3.    |  |__cache
    4.    |  |  |__.
    5.    |  |
    6.    |  |__index.php
    7.    |__.
    Скрипт будет всё равно подключаться по адресу .\root\cache, но НЕ .\root\myscript\cache
    Поэтому ВСЕГДА следует использовать относительный путь - dirname(__FILE__)
    Хотя дело ваше, если специально для себя пишете и ставите в корневую директорию
     
  5. zzzVolkzzz

    zzzVolkzzz Активный пользователь

    С нами с:
    10 апр 2009
    Сообщения:
    26
    Симпатии:
    0
    Спасибо, понятно. Вот я только не понял что прописать в ini_set('include_path', PATH).
    Что писать в качестве PATH?
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    zzzVolkzzz, include_path полезен в случаях установки постоянной директории для сеанса.
    Указываете путь по-дефолту и всё.
    Константа PATH - это и есть dirname(__FILE__);