2014-01-14 3 views
0

СтруктураКак получить относительный путь к файлу в PHP

libs/functions.php 
test/b.php 
a.php 
content.html 

functions.php

<?php 
function showContent() { 
    return file_get_contents('content.html'); 
} 

a.php

<?php 
include 'libs/functions.php'; 
echo showContent(); 

b.php

<?php 
include '../libs/functions.php'; 
echo showContent(); 

content.html

test 

a.php покажет слово тест, но b.php находится в папке тест, поэтому путь к файлу будет быть неправ, как это исправить?

ответ

0

пожалуйста, используйте следующее:

$basePath = dirname(__FILE__); 

использовать этот $basePath префиксы к любому включить или требует заявления.

Я надеюсь, что это поможет

+0

Просьба прокомментировать нижний предел. –

+0

, когда вы чего-то не знаете, пожалуйста, не используйте нисходящее для того же .. –

0

Вы думаете об этом от неправильного направления.

Вместо этого, открыв разные php-файлы, создайте один файл index.php, который includes и работает со сценариями, в которых вы нуждаетесь. Таким образом, вы всегда будете в корне и сможете получить доступ к файлам/функциям, которые вам нужны.

Другой способ Клонирование каталог в подкаталоги, но я делать НЕ предложить этот вариант. С течением времени вы будете растеряны.

+0

На самом деле я пишу смарт-плагин, и надеюсь, что php-файл в backend может сделать то же самое, что и front end, я использую класс phpThumb для создания эскизного изображения, ему нужно сделать что-то вроде '', поэтому мне нужно дать правильный путь для класса – Chan

+0

И я не хочу задавать слишком сложный вопрос, поэтому я просто упомянул о функции, которая мне нужна – Chan

+0

Почему вы не можете использовать что-то вроде 'src = '/? method = img & src = uploads/test.jpg «'? – Peon

0

Вы можете использовать корень документа как начало вашего пути, чтобы вам никогда не приходилось об этом беспокоиться.

$_SERVER['DOCUMENT_ROOT'].'/libs/functions.php' 

и

$_SERVER['DOCUMENT_ROOT'].'/content.html' 
+0

$ _SERVER ['DOCUMENT_ROOT'] всегда укажет на корень документа для хоста. поэтому вам придется позаботиться об этом, если проект находится в подпапках и для этого будет создан виртуальный хост. –

+0

DOCUMENT_ROO в windows сделает путь как 'C: \ wamp \ www \ ...', мне нужно получить относительный путь, спасибо – Chan

0

Я не знаю, почему вы должны это сделать, но одно решение было бы создать индекс с все PHP файлы из папки, которые вы хотите.

Другим решением может быть, чтобы установить постоянный путь от базового пути. Вы можете получить корень веб-сайта, используя $_SERVER['DOCUMENT_ROOT']. Это самое быстрое решение, и, установив эту константу, вы всегда будете ссылаться непосредственно на файл functions.php.

Смежные вопросы