есть файл left.
php который includ`ится во все страницы сайта, в нём есть
echo $_SERVER['DOCUMENT_ROOT'];
$file = fopen ('/topic/top_number.txt', 'r');
как корень он пишет W:/domains/swarex => должен открывать файл w:/domains/swarex/topic/top_number.txt который точно существует,но он пишет:
Warning: fopen(/topic/top_number.txt) [function.fopen]: failed to open stream: No such file or directory in W:\domains\swarex\tpl\left.
php on line 5
почему и как это можно исправить(путь обязательно должен быть от корня)?
_____________
Yes, I`m a noob
killer8080
4.01.2013 - 16:42
$file = fopen ($_SERVER['DOCUMENT_ROOT'] . '/topic/top_number.txt', 'r');
Цитата (killer8080 @ 4.01.2013 - 16:42) |
$file = fopen ($_SERVER['DOCUMENT_ROOT'] . '/topic/top_number.txt', 'r'); |
спасибки,но почему не работает ссыль /topic/top_number.txt если она вроде как то же самое?
_____________
Yes, I`m a noob
killer8080
4.01.2013 - 16:50
Цитата (Swarex @ 4.01.2013 - 14:48) |
но почему не работает ссыль /topic/top_number.txt если она вроде как то же самое? |
да где же то же самое?
/topic/top_number.txt и W:/domains/swarex/topic/top_number.txt
killer8080
4.01.2013 - 16:53
Вообще для работы с путями $_SERVER['DOCUMENT_ROOT'] не самый надежный вариант, лучше в индексном файле объявить константу, указывающую на рабочий каталог, и её использовать.
Цитата (killer8080 @ 4.01.2013 - 16:50) |
Цитата (Swarex @ 4.01.2013 - 14:48) | но почему не работает ссыль /topic/top_number.txt если она вроде как то же самое? |
да где же то же самое? /topic/top_number.txt и W:/domains/swarex/topic/top_number.txt
|
если я не ошибаюсь - "/" ссыль в корень сайта, корень сайта - $_SERVER['DOCUMENT_ROOT'] или не так?
Цитата |
лучше в индексном файле объявить константу, указывающую на рабочий каталог, и её использовать. |
а как?
_____________
Yes, I`m a noob
killer8080
4.01.2013 - 17:03
Цитата (Swarex @ 4.01.2013 - 15:00) |
если я не ошибаюсь - "/" ссыль в корень сайта |
ошибаешься, не корень сайта, а корень файловой системы.
Если так ./ то это будет текущий каталог, но ссылается он на текущую директорию запуска скрипта, а не на документ рут, об этом нужно помнить.
Цитата (killer8080 @ 4.01.2013 - 17:03) |
Цитата (Swarex @ 4.01.2013 - 15:00) | если я не ошибаюсь - "/" ссыль в корень сайта |
ошибаешься, не корень сайта, а корень файловой системы. Если так ./ то это будет текущий каталог, но ссылается он на текущую директорию запуска скрипта, а не на документ рут, об этом нужно помнить.
|
0_о меня обманули((
а таки как в индексном файле объявить константу, указывающую на рабочий каталог и использовать её?
_____________
Yes, I`m a noob
SoMeOnE
4.01.2013 - 18:52
Цитата (Swarex @ 4.01.2013 - 14:20) |
Цитата (killer8080 @ 4.01.2013 - 17:03) | Цитата (Swarex @ 4.01.2013 - 15:00) | если я не ошибаюсь - "/" ссыль в корень сайта |
ошибаешься, не корень сайта, а корень файловой системы. Если так ./ то это будет текущий каталог, но ссылается он на текущую директорию запуска скрипта, а не на документ рут, об этом нужно помнить.
|
0_о меня обманули((
а таки как в индексном файле объявить константу, указывающую на рабочий каталог и использовать её?
|
Ну как то так например.
define('BASEURL', 'рабочий каталог');
и используешь уже эту константу везде (BASEURL)
killer8080
4.01.2013 - 19:33
Цитата (Swarex @ 4.01.2013 - 16:20) |
а таки как в индексном файле объявить константу, указывающую на рабочий каталог и использовать её? |
для PHP<5.3
define('DOC_ROOT', dirname(__FILE__));
для PHP>=5.3
define('DOC_ROOT', __DIR__);
killer8080
4.01.2013 - 19:34
Цитата (SoMeOnE @ 4.01.2013 - 16:52) |
и используешь уже эту константу везде (BASEURL) |
не советую выбирать такое имя для константы, т.к. имя должно отражать суть. Файловый путь и УРЛ это совершенно разные вещи.
а использовать её как?
_____________
Yes, I`m a noob
killer8080
4.01.2013 - 19:45
Цитата (Swarex @ 4.01.2013 - 17:41) |
а использовать её как? |
так и использовать, подставлять везде как часть пути.
$file = fopen (DOC_ROOT . '/topic/top_number.txt', 'r');
угу. а для объявления просто написать define('DOC_ROOT', __DIR__); в index.php в корне сайта?
_____________
Yes, I`m a noob
killer8080
4.01.2013 - 20:19
Цитата (Swarex @ 4.01.2013 - 18:15) |
угу. а для объявления просто написать define('DOC_ROOT', __DIR__); в index.php в корне сайта? |
Да, при условии что index.php единая точка входа.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.