 |
 |
Форум сетевых администраторов » Программирование » PHP » Include
| Автор |
| Тема |
 |
|
 |
|
|
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
PHP:
<? $success = @include_once(dirname(__FILE__)."/elem/config.inc.php");
if (!$success) { echo "Include failed"; } ?>
Ð_то хороший прием, что бы включать файл на оюбом уровне сата или есть по-лечше? С $DOCUMENT_ROOT иногда проблема, пхп теряет путь, а иногда нет. Мне надо, что бы это на всех серваках при любой конфигурации работало.
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-04-2003 18:02 |
|
|
Участник+
|
| [quote]С $DOCUMENT_ROOT иногда проблема, пхп теряет... |
[сооб. #41905]
24-04-2003 22:10 |
|
Участник+

Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 144
Статус:  |
quote: С $DOCUMENT_ROOT иногда проблема, пхп теряет путь, а иногда нет
А если с $_SERVER['DOCUMENT_ROOT'] попробовать ...
__________________
**censored**
Ð_усский ресурс о PHP
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-04-2003 22:10 |
|
|
Сибиряк
|
| пути инклудов в PHP - очередная глупость, с которой... |
[сооб. #41927]
25-04-2003 07:09 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
пути инклудов в PHP - очередная глупость, с которой приходится бороться. Первый путь - указанный, dirname(__FILE__). Второй путь - валить все в каталог типа classlib и указывать его в .htaccess:
php_value include_path ".:/my/classlib: ... "
при этом .htaccess становится серверо-зависимым, но можно не лепить дирнэймы к каждому инклуду.
document_root теряется, когда апач настроен на массовый хостинг при помощи mod_vhost_alias. Против этого (а также других случаев несовместимости) у меня есть извращенная функция document_root() на все выявленные случаи кривизны, которую я и юзаю вместо переменной. На другие переменные, типа SERVER_NAME, тоже нельзя полагаться, кстати. И на PHP_SELF (у меня был хостинг, где она указывала на сам PHP).
Tagore добавил 25-04-2003 в 07:17:05:
quote: Первоначальное сообщение от Stek
А если с $_SERVER['DOCUMENT_ROOT'] попробовать ...
PHP:
<?php
function getPath() {
// get position of current file
$path = $GLOBALS["PATH_INFO"];
// save a few nanaseconds, has this been done before,
// has the global variable been set ?
if (!isset($definedPath)) {
// is file in root already ?
if (strrpos($path,"/")!=0) {
// there is probably a quicker way to count
// the "/"s in the path
$path=explode("/",$path);
$s="";
for ($i=0;$i<count($path)-1;$i++) {
if ($path[$i]!="") {
// add the number of "../"s required
$s.="../";
}
}
// declare a global variable so you dont have to
// do this again, and return the variable
global $definedPath;
$definedPath=$s;
return $definedPath;
}
} else {
// just return what it worked out before, function
// only really runs once
return $definedPath;
}
}
include getPath() . "my_include_path/header.inc";
include getPath() . "includes/somethingelse.inc";
//above file is at mydomain.com/includes/somethingelse.inc
include getPath() . "includes/footer.inc";
?>
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
25-04-2003 07:09 |
|
|


Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
Или же так
PHP:
function DeWin($path)
{
if($path,1,1)==':')
$path=$path,2);
return '//','/','','/',$path));
}
function document_root()
{
global $HTTP_SERVER_VARS;
$s=&$HTTP_SERVER_VARS;
if(isset($s['CMDLINE'])) return false;
$full=DeWin($s['PATH_TRANSLATED']);
$i_am=DeWin($s['PHP_SELF']);
if($full,-$i_am))==$i_am)
return $s['PATH_TRANSLATED'],0,$s['PATH_TRANSLATED'])-$i_am));
return 'DOCUMENT_ROOT');
}
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
26-04-2003 16:23 |
|
|
Участник+
|
| Честно скажу, что сам так никогда не заморачивался,... |
[сооб. #42007]
26-04-2003 23:29 |
|
Участник+


Зарегистрирован: Aug 2002
Место проживания: Питер
Публикаций: 69
Статус:  |
Честно скажу, что сам так никогда не заморачивался, если надо что-то подключить, то всегда пользовал "./" - в текущем каталоге , "../" - в каталоге выше и всё в таком духе...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
26-04-2003 23:29 |
|
|
Сибиряк
|
Stdin
Я тоже перешел к этому. Ð_аботает, но... |
[сооб. #42051]
27-04-2003 08:45 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
Stdin
Я тоже перешел к этому. Ð_аботает, но можно желать лучшего.
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
27-04-2003 08:45 |
|
|
Участник+
|
Tagore
Имхо это и есть лучшее  |
[сооб. #42089]
27-04-2003 15:42 |
|
|
Участник
|
| А вот поисковики эти включонные файлы читают... |
[сооб. #42250]
29-04-2003 05:45 |
|
Участник

Зарегистрирован: Jun 2002
Место проживания: Львов, Сочи
Публикаций: 11
Статус:  |
А вот поисковики эти включонные файлы читают или нет?
Я тоже использую ../ Почму вы(Tagore) считаете, что можно желать лучшего.
__________________
-----------------
sytnik.e-lviv.net
lover.com.ua
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-04-2003 05:45 |
|
|
Сибиряк
|
Dmitry
Потому что если менять структуру... |
[сооб. #42264]
29-04-2003 09:43 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
Dmitry
Потому что если менять структуру сайта, то много переписивать приходиться. Переменные - увы не всегда решение.
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-04-2003 09:43 |
|
|
Администратор
|
| Вот сижу читаю эту тему и в следующий раз убеждаюсь... |
[сооб. #42307]
29-04-2003 22:13 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Вот сижу читаю эту тему и в следующий раз убеждаюсь насколько людям нравится усложнять себе жизнь. Вобщем то что тебя так волнует есть в книге котерова.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-04-2003 22:13 |
|
|
Участник
|
| Я уже понял, что страницы, где используется... |
[сооб. #42340]
30-04-2003 07:53 |
|
Участник

Зарегистрирован: Jun 2002
Место проживания: Львов, Сочи
Публикаций: 11
Статус:  |
Я уже понял, что страницы, где используется функция <?php include "up.html";?> не читаются поисковиками. По моему это проблема посерьезней.
Можно как-то вставить фаил, чтобы поисковик затем его прочитал.
__________________
-----------------
sytnik.e-lviv.net
lover.com.ua
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-04-2003 07:53 |
|
|
Участник+
|
Dmitry,
Откуда такое мнение? Чем страница,... |
[сооб. #42344]
30-04-2003 09:11 |
|
Участник+

Зарегистрирован: Feb 2002
Место проживания: RU, VLadivostok
Публикаций: 145
Статус:  |
Dmitry,
Откуда такое мнение? Чем страница, сгенерированная скриптом без использования инклюдов, отличается от страницы, сгенерированной скриптом с использованием инклюдов? Да, ничем. В обоих случаях получается статичный html-код.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-04-2003 09:11 |
|
|
Участник
|
| Я задал этот вопрос человеку из meta.ua(украинский... |
[сооб. #42346]
30-04-2003 10:26 |
|
Участник

Зарегистрирован: Jun 2002
Место проживания: Львов, Сочи
Публикаций: 11
Статус:  |
Я задал этот вопрос человеку из meta.ua(украинский поисковик), и
получил отрицательный ответ. Отсюда и такое мнение.
__________________
-----------------
sytnik.e-lviv.net
lover.com.ua
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-04-2003 10:26 |
|
|
Администратор
|
| Поисковик никоим образом не может определить... |
[сооб. #42427]
01-05-2003 14:11 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Поисковик никоим образом не может определить как попал текст на страницу, инклюдом, из базы или другим способом. Скорее всего человек из мета уа либо не понял твоего вопроса, либо он просто ничего не шарит.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
01-05-2003 14:11 |
|
|
Сибиряк
|
Yet I found a solution:
PHP:--------------------------------------------------------------------------------
PHP:
chdir(dirname(__FILE__));
--------------------------------------------------------------------------------
This... |
[сооб. #42488]
02-05-2003 07:49 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
Yet I found a solution:
PHP:--------------------------------------------------------------------------------
PHP:
chdir(dirname(__FILE__));
--------------------------------------------------------------------------------
This makes the job, so you can include files from the same folder, not from the Including file.
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
02-05-2003 07:49 |
|
|
|
Формат времени GMT. Текущее время 21:19.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.66568494 seconds (99.19% PHP - 0.81% MySQL) with 26 queries.
|
 |