Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Как писать пути к файлам при использовании Require
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Описание: что-то запуталась я в них
Alice_vic
Отправлено: 29 Мая, 2008 - 17:09:18
Post Id



Newbie


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

Карма 0




Здравствуйте,
Cтала делать меню и что-то совсем запуталась, распутайте, пожалуйста!
У меня 2 вопроса.

1. Вот есть (будут) на сайте 5 разделов, для каждого своя папка: news/ , about/ , contacts/ и т.д.
Т.е. есть 5 пунктов меню.
Записала это меню в отдельный файл: menu.php . Он находится в КОРНЕВОМ каталоге.

И вот вопрос - как мне теперь к этому файлу обращаться через функцию require ? Т.е. к корневому каталогу? Если написать <? require( 'menu.php' ); ?> , то он, понятное дело, не находится.
Не понимаю принципа обращения к файлам.

2. И еще:
Вот у меня сейчас РНР файл лежит в такой папке: T:\home\localhost\k\kog\file.php
В нём есть такое обращение: style="background: url(/images/top.gif)" .
Почему же он это рисунок ищет в папке T:\home\localhost\images
, вместо того чтобы искать его в T:\home\localhost\k\images ?

Объясните пожжалуйста, или носом ткните где про это читать%)).
 
 Top
Furax
Отправлено: 29 Мая, 2008 - 22:57:45
Post Id



Бледнотик


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

Карма 32




Alice_vic
Существует разница между обработкой адресов браузером и PHP.

Браузер понятия не имеет про то, на каком диске и в какой директории находится корень сайта, он обращается к нему по URL (http://my.site.ru), а уже сервер, стоящий на твоём компе (или на любом другом), знает, какая директория является корнем сайта (кстати, одному сайту не обязательно соответствует только одна директория). Поэтому обращение к /images/top.gif побуждает браузер загрузить страницу http://my.site.ru/images/top.gif, а уже сервер понимает, что надо искать файл T:\denwer\home\site.ru\my\images\top.gif.

Если же обработка адресов происходит в PHP-скрипте, то здесь уже работают правила, принятые в файловой системе сервера. Ты можешь напрямую подключить файл, указав его абсолютный путь (T:\home\localhost\k\kog\menu.php), но это будет работать только на твоей машине (или там, где абсолютный путь совпадает с твоим вариантом). Поэтому удобнее использовать относительную адресацию.

Пусть в каталоге есть файл menu.php и каталог news, в котором лежат файл file.php и каталог archive, где лежит файл archive.php. Тогда из file.php сослаться на archive.php можно как "archive/archive.php" (обрати внимание: путь относительный, без указания диска и т. д.), а на menu.php - "../menu.php". ".." означает "на 1 каталог вверх". Если надо вверх на 2 каталога - пишем "../.." и так далее.
 
 Top
TvoyWeb Администратор
Отправлено: 30 Мая, 2008 - 00:39:29
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




Alice_vic
В PHP есть директива include_path в ней записаны пути где искать файлы подключаемые всевозможными инклюде.
PHP сначала ищет относительно папки откуда вызывается скрипт в котором подключаются файлы и потом ищет в в инклюде патч.
Посмотреть где PHP ищет файлы можно
CODE:
echo ini_get("include_path");

Я в своих сскриптах всегда использую такой код:
CODE:
if (!defined("PATH_SEPARATOR")) { define("PATH_SEPARATOR", getenv("COMSPEC")? ";" : ":"); }
ini_set("include_path", ini_get("include_path").PATH_SEPARATOR.dirname(__FILE__));

Здесь на первой строке проверяем директиву разделитель путей в инклюде патч и потом добавляем через разделитель новый путь в инклюде патч.
 
 Top
Alice_vic
Отправлено: 30 Мая, 2008 - 16:25:28
Post Id



Newbie


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

Карма 0




Furax Спасибо большое, очень помогло твое объяснение, вроде теперь всё сделала Радость .
TvoyWeb Это слишком гениальный код для меня Не понял , но все-таки хочется узнать - а что значит ? в верхней строке и вот эти двоеточия ";" : ":" за ним?
 
 Top
Systemnik Администратор
Отправлено: 31 Мая, 2008 - 06:13:00
Post Id



ExBB Developer Team


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

Карма 0




Цитата:
Я в своих сскриптах всегда использую такой код:

Вот вот а мы тут недавно с cryptex'om с альфы мучались и правили твой код Ха-ха Маркус пусть не в тему но сделай нормально! на альфе отключен ini_set().... Огорчение Огорчение Я что бы установить форум мучался пол дня и правил кучу файлов.. Растерялся
 
 Top
Furax
Отправлено: 31 Мая, 2008 - 07:44:53
Post Id



Бледнотик


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

Карма 32




Alice_vic
Конструкция
CODE:
a ? b : c
значит следующее: если a, то b, иначе c. Например:
CODE:
print(isSet($_POST['user']) ? htmlSpecialChars($_POST['user']) : 'Гость');
Если POST-переменная user была задана, то будет выведено имя пользователя в безопасном виде, если нет - слово "Гость".
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 4 (гостей: 4, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


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



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0456]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33