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 :: path, include, open_basedir

 PHP.SU

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


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

> Без описания
VestCoastman
Отправлено: 19 Июля, 2012 - 22:52:28
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. echo $_SERVER['DOCUMENT_ROOT'].'<br>'; // выводит /usr/local/apache/htdocs
  2. echo realpath(__FILE__); // выводит /home/MY_SUPER_USER/public_html/viewuser.php

А не должно ли Documen root выводить мне это /home/MY_SUPER_USER/public_html/?
И как его получить не прибегая к substr(), '../../../' и т.п.?

(Отредактировано автором: 19 Июля, 2012 - 22:54:42)

 
 Top
PATCH
Отправлено: 19 Июля, 2012 - 23:23:29
Post Id



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


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


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




$_SERVER['DOCUMENT_ROOT'] - Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера. следовательно оно выводит то что прописано в настройках apache.
 
 Top
VestCoastman
Отправлено: 19 Июля, 2012 - 23:28:23
Post Id



Посетитель


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


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




PATCH пишет:
$_SERVER['DOCUMENT_ROOT'] - Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера. следовательно оно выводит то что прописано в настройках apache.

Да, это я понял. Меня больше волнует как мне получить директорию сайта (/home/MY_SUPER_USER/public_html/)? На разных хостингах ведь по разному.
 
 Top
PATCH
Отправлено: 19 Июля, 2012 - 23:32:17
Post Id



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


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


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




explode
 
 Top
VestCoastman
Отправлено: 19 Июля, 2012 - 23:37:29
Post Id



Посетитель


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


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




PATCH пишет:
explode

Т.е. функция которую не требуется изменять __FILE__ к виду /home/xxx/public/ не существует?

(Отредактировано автором: 19 Июля, 2012 - 23:40:25)

 
 Top
OrmaJever Модератор
Отправлено: 19 Июля, 2012 - 23:39:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




VestCoastman пишет:
Меня больше волнует как мне получить директорию сайта (/home/MY_SUPER_USER/public_html/)?
Не понял
VestCoastman пишет:
PHP:
скопировать код в буфер обмена
  1. echo realpath(__FILE__); // выводит /home/MY_SUPER_USER/public_html/viewuser.php

Сами же ответили на свйо вопрос. Ещё есть вариант с dirname(__FILE__), а если на хостинге php >= 5.3 то есть специальная константа __DIR__ в которой содержится директория текущего файла.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
PATCH
Отправлено: 19 Июля, 2012 - 23:44:25
Post Id



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


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


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




если я правильно понел, то как то так

PHP:
скопировать код в буфер обмена
  1. $path=realpath(__FILE__); //получаем абсолютный путь до файла
  2. $mas=explode("/", $path); //разделяем путь на массив
  3. $count=count($mas); //подсчет количества элементов в массиве
  4. for ($x=0; $x<$count-1; $x++) { //$count -1 потому что нам не нужен последний элемент массива (это сам файл) а условие < компесирует отсчет массива с нуля
  5.     $mas[$x]='..';//заменяем на точки
  6.     $str=$str.'/'.$mas[$x]; // генерируем путь вида /../../../..
  7. }
  8. echo $str;

как то так одно, но если не правильно выводит значит ошибку тут с расположением)) $str=$str.'/'.$mas[$x];

(Отредактировано автором: 19 Июля, 2012 - 23:45:42)

 
 Top
VestCoastman
Отправлено: 19 Июля, 2012 - 23:45:31
Post Id



Посетитель


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


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




Цитата:
OrmaJever пишет:
VestCoastman пишет:
Меня больше волнует как мне получить директорию сайта (/home/MY_SUPER_USER/public_html/)?
Не понял
VestCoastman пишет:
PHP:
скопировать код в буфер обмена
  1. echo realpath(__FILE__); // выводит /home/MY_SUPER_USER/public_html/viewuser.php

Сами же ответили на свйо вопрос. Ещё есть вариант с dirname(__FILE__), а если на хостинге php >= 5.3 то есть специальная константа __DIR__ в которой содержится директория текущего файла.

Мне не нужна директория текущего файла, мне нужна директория сайта. Я ведь не могу постоянно приводить dirname(__FILE__) /home/xxx/public/inc/tpl/backup. . к виду /home/xxx/public/

(Отредактировано автором: 19 Июля, 2012 - 23:50:15)

 
 Top
PATCH
Отправлено: 19 Июля, 2012 - 23:49:24
Post Id



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


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


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




VestCoastman пишет:
Мне не нужна директория текущего файла, мне нужна директория сайта. Я ведь не могу постоянно приводить dirname(__FILE__) /home/xxx/public/inc/tpl/backup. . к виду /home/xxx/public/

блин а сразу так никак?
создай файл dir.php в корне сайта или вообще в index.php
напиши $_SESSION['dir_main']=dirname(__FILE__);
и все как понадобится путь с корня сайта вуаля обращаемся к сессии (примечания везде по логике где будеш применять сессию,она должна быть включена (там же где и присваеваешь)

(Отредактировано автором: 19 Июля, 2012 - 23:49:45)

 
 Top
VestCoastman
Отправлено: 20 Июля, 2012 - 00:06:47
Post Id



Посетитель


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


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




PATCH, блин, совсем забыл про сессии... Спасибо тебе огромное)
 
 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