Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для knuthamsun
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 78

Подключение файла в любую директорию через единое выражение

16.07.2016, 09:33. Показов 553. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Есть ли способ подключать нужный файл не через

include test.php
../test.php
../../test.php

а каким-то одним выражением?

Пробовал
PHP
1
$_SERVER['SERVER_NAME'] . '/'. 'config.php';
и так
PHP
1
include dirname(__DIR__) . '/' . $_SERVER['SERVER_NAME'] . '/' . 'config.php';
но что-то не то.. На одном уровне подключается, а в поддиректориях в адрес добавляются лишние папки. Что можно сделать, чтоб не задрачиваться с точечками, а просто CTRL+C & CTRL+V одно выражение?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2016, 09:33
Ответы с готовыми решениями:

Составить единое составное логическое выражение
Помогите составить единое составное логическое выражение (If <условие> then <действие> else <действие>), по графику

Скачивание файла через WebBrowser в пользовательскую директорию
Есть проблема, у меня есть веб-браузер, в нём есть стандартные функции для скачивания, мне нужно сделать так что-бы во время скачивания...

Открытие файла через директорию exe-шника
Как обратиться к файлу через директорию экзешника? Если в адрес просто писать имя файла или /fileName, то он не открывается. (по...

8
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
16.07.2016, 20:41
Цитата Сообщение от knuthamsun Посмотреть сообщение
а просто CTRL+C & CTRL+V
Никак. Поэтому сейчас и используют единую точку входа -- один раз подключил и всё приложение "видит" подключённое.
Но если перестроить архитектуру сейчас не представляется возможным, а файлов для подобного подключения много,-- вынесите эти подключения в отдельный файл, а его уже потом подключайте.
В одной строке точки поменять проще.
0
 Аватар для knuthamsun
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 78
16.07.2016, 22:36  [ТС]
Para bellum Спасибо за ответ) Я в ООП пока не силён с точки зрения практики, поэтому делаю ещё на процедурном. Но меня ООП вдохновило на поиск такого решения) А так, конечно, приходится выносить все конфиги и иниты в отдельные файлы и тягать их.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
16.07.2016, 22:50
Для единой точки входа ООП необязательно, хотя с ним гораздо проще.
0
 Аватар для knuthamsun
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 78
16.07.2016, 22:52  [ТС]
Para bellum ану ану... поподробнее) Я написал RewriteEngine on .. бла бла... RewriteCond ^(.+)$ ну и так далее.. Ну а потом $uri = $_GET['uri'].. explode.. и т д. Но я у думал, что тут ООП. А по-вашему, что тут можно придумать если на процедурном?
0
 Аватар для Rurr
23 / 23 / 11
Регистрация: 12.01.2013
Сообщений: 223
17.07.2016, 01:26
У меня вот так распределят что куда, каждый модуль заточен по отдельные нужды.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(isset($uri[1])){
    if($uri[1] == ADMINPATH){
        require("panel/admin.php");
    }else if($group->isCategory($uri[1])){
        require('engine/modules/modules_general.php');
    }else   if(file_exists('engine/modules/modules_'.$uri[1].'.php')){
        require('engine/modules/modules_'.$uri[1].'.php');
    }else if(file_exists('site/template/'.$uri[1].'.php')){
        require('engine/modules/modules_page.php');
    }else{
        require('engine/modules/modules_general.php');
    }
}else{
    require('engine/modules/modules_general.php');
}
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
17.07.2016, 01:52
Цитата Сообщение от Rurr Посмотреть сообщение
У меня вот так распределят что куда, каждый модуль заточен по отдельные нужды.
спрячь и не показывай никому
file_exists здесь зачем? switch здесь красивее выглядел бы?
минимальный код примерно так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php # Author - Fedor Vlasenko, vlasenkofedor@mail.ru
define('METHOD', $_SERVER['REQUEST_METHOD']);
define('URI', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
 
# 1 parametr - uri, 2 - optional method or callback, 3 - not or callback
function router()
{
    $args = func_get_args();
    $num_args = func_num_args();
    (3 !== $num_args ||  METHOD === $args[1])
    && (URI === $args[0] || preg_match('#^' . $args[0] . '$#ui', URI, $match))
    && die($args[$num_args - 1]($match ?: []));
}
 
router('/', function () {
    echo 'Main Micro ☺';
});
 
router('/article/', 'GET', function ($result) {
    echo 'Article';
});
 
router('/article/(.*[^/])', 'GET', function ($result) {
    echo 'Article: ', $result[1];
});
 
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
echo '404';
0
 Аватар для knuthamsun
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 78
17.07.2016, 01:56  [ТС]
Спасибо, какой-то свежий взгляд для меня)
0
 Аватар для Rurr
23 / 23 / 11
Регистрация: 12.01.2013
Сообщений: 223
17.07.2016, 20:53
Цитата Сообщение от Poznakomlus Посмотреть сообщение
file_exists здесь зачем?
Когда я учился - читал что в пхп много проверок не бывает, при чем там это и относится к логике работы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2016, 20:53
Помогаю со студенческими работами здесь

Регулярное выражение для поиска определённых файлов и копирование их в другую директорию
Здраствуйте! Столкнулся с регулярными выражениями. Но такое дело что в них ничего понять не могу. Может кого то не затруднит мне помочь....

Подключение файла через метод класса
Оказывается, если инклюдить файл через метод класса, то содержимое подключается как бы в этот самый метод, и видит в своём окружении...

Подключение PHP файла через скрипт
Приветствую. Прошу помощи. У меня есть сайт. Я подключаю к нему php файл вот так(спрашивать, почему именно так - не нужно))) ...

Подключение файла ssi через сценарий javascript
А что посоветуете насчет конструкции document.write(' &lt;!-- #include file='filebog1.txt' --&gt;') Не работате также и ...

Создать программно директорию и 3 файла в ней: 2 текстовых и 1 командный. Имена запрашивать с клавиатуры. Вывести на экран имя командного файла
Прошу помочь сделать. Linux вижу впервые


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru