Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как правельно инклюидить файлы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
voker
Отправлено: 21 Мая, 2008 - 18:50:54
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Народ как правельно и безопасно Ниндзя инклюидить файлы! Не понял
 
 Top
EuGen Администратор
Отправлено: 21 Мая, 2008 - 19:03:04
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
voker
Отправлено: 21 Мая, 2008 - 20:32:25
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




А я вот так делаю:
index.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. require_once getenv("DOCUMENT_ROOT")."/lib.php/config.php";
  4. require_once"config.inc.php";
  5. require_once "bd.php";
  6. require_once "lib.function.php";
  7. ?>
  8.  

config.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. if(!defined("PATH_SEPARATOR"))
  4. defined("PATH_SEPARATOR", getenv("COMSPEC")? ";" : ";");
  5. ini_set("include_path",ini_get("include_path").PATH_SEPARATOR.dirname(__FILE__));
  6. ?>
  7.  


сам не знаю чё такое но работает отмено! Не понял я этот код с какойто книги взял но не помню с какой! Растерялся
 
 Top
scuter
Отправлено: 22 Мая, 2008 - 17:48:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




код конечно прикольный,
я напимер сначало проверяю существует ли файл,
PHP:
скопировать код в буфер обмена
  1.  
  2.         if(file_exists($_SERVER['DOCUMENT_ROOT'.'file_name'))
  3.         {
  4.                 require_once($_SERVER['DOCUMENT_ROOT'.'file_name');
  5.         }
 
 Top
voker
Отправлено: 22 Мая, 2008 - 23:03:44
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




а как ещё можно инклюидить файлы?
Народ на етом форуме линивый какойто в каждом топики ссылки на мануал сують Однако
так ваще не интересно Не понял

Мож у кого свой супер метод есть, и ему не жалко поделиться им!
 
 Top
scuter
Отправлено: 23 Мая, 2008 - 03:58:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




слухай, а чем тебя этот метод не устраивает,
что может быть особенного в такой вещи как include
в принципе есть только 4 функции которые это делают
Цитата:
include();
include_once();
require();
require_once();

и к тому же что в твоём понимани правильный include,
так сказать обьясни что тебе требуется,
Цитата:
буть проще и народ к тебе потянется.
 
 Top
SergeantPEPPER
Отправлено: 23 Мая, 2008 - 09:18:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




Да вообще если присмотреться к приведенному коду у меня лично создалось впечатление, что всю писанину с суперглобальными переменными можно заменить просто точкой Радость

Т.е. будет аналогично вызываться файл из той же папки (например) - только не с помощью абсолютного пути, а с помощью относительного.
Я например всегда пишу так:
CODE (text):
скопировать код в буфер обмена
  1. include_once ('./common.lib.php');


Точечка здесь означает местонахождение в текущей папке...
 
 Top
samulet
Отправлено: 28 Мая, 2011 - 20:17:20
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Пожалуйста, помогите понять, что обозначает эта строка:
voker пишет:
ini_set("include_path",ini_get("include_path").PATH_SEPARATOR.dirname(__FILE__));

Есть где-н её детальный разбор?
Спасибо
 
 Top
molchun201
Отправлено: 28 Мая, 2011 - 20:34:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


Помог: 5 раз(а)




1. ini_set()

2. "include_path" - это шаблон пути

3. ini_get()

4. "include_path" - это шаблон пути

5. .(точка) - конкатенация с

6. PATH_SEPARATOR

7. dirname()

8. dirname(__FILE__) - вернет тебе полный путь к директории, в которой лежит текущий файл


-----
Обрамляйте код тегами и читайте
 
 Top
samulet
Отправлено: 28 Мая, 2011 - 21:57:40
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




molchun201 Спасибо. Это что-то похожее на английский язык. По раздельности слова знакомые, а в целом не понятно.
Ясно, что конструкцией задается шаблон пути, который равен существующему шаблону пути плюс слэш плюс полный путь к директории в которой лежит наш файл (запущенный в данный момент). Я правильно понял?
Что такое "шаблон пути"?
Зачем такая заморочка, если можно прописать как абсолютный путь, так и относительный путь напрямую?
Можно подробней пояснить что такое "include_path"!? Я вывел существующий путь

и удивился тому, что увидел - .:/usr/local/share/pear
Кстати, у меня PATH_SEPARATOR является двоеточием. Зачем между шаблоном пути и директории, где лежит файл разделитель в виде ":"?

Я совсем зеленый, если вопросы совсем глупые отправьте к пояснениям.
Спасибо

(Отредактировано автором: 28 Мая, 2011 - 22:46:27)

 
 Top
event
Отправлено: 28 Мая, 2011 - 22:07:29
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB