Ссылка на файл независимо от структуры и глубины папки - PullRequest
6 голосов
/ 03 февраля 2012

Мои исследования привели меня к мысли, что это можно назвать , абсолютный URL / относительный URL .Но, пожалуйста, я не уверен.Так что это не причина, чтобы дать мне минус, так как я только что достиг 50, и я нахожусь на кривой обучения STEEP.

В моем index.php

у меня есть ссылка на массив CSV,/array/test.csv

Затем у меня есть папка с именем MENU .В этой папке у меня есть PHP с именем menu.php, который также должен содержать ссылку на test.csv.Однако я не могу поставить /array/test.csv, вместо этого мне нужно поставить ../array/test.csv.

Так что в зависимости от того, где вы находитесь в структуре папок, вы можете использовать / or ../ or ../../,

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

Ответы [ 3 ]

4 голосов
/ 03 февраля 2012

Я бы назвал полный путь к файлу.

$_SERVER['DOCUMENT_ROOT'] . "/array/test.csv"

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

Таким образом, чтобы сохранить путь в переменной, вы можете сделать.

$csvFile = $_SERVER['DOCUMENT_ROOT'] . "/array/test.csv"
1 голос
/ 03 февраля 2012

Если вы не используете DOCUMENT_ROOT, это зависит от структуры вашей папки.«..» означает, что вы возвращаетесь на одну папку назад.

Если у вас есть такая структура:

root_dir
|
folderA
|  |
|  - A.php
|
folderB
   |
   - B.php

Если вы находитесь в файле B.php и хотите включить A.php, у вас естьчтобы использовать этот путь:

inlcude "../folderA/A.php";

, поэтому вы возвращаетесь на одну папку назад, затем вы находитесь в root_dir, откуда вы можете получить доступ к A.php через folderA/A.php.

1 голос
/ 03 февраля 2012

Arthor, правильного пути нет, вы правы, это relative vs absolute ссылка на файл / url / resource.

Нет неправильного пути.Однако у каждого подхода есть свои плюсы и минусы:

Ключевые отличия:

  • относительно: переносимость (вы можете переместить ваше приложениескопировав и вставив куда-нибудь еще, при вызове URLS ../array/file.ext вы всегда будете ссылаться на них правильно.
  • относительный: перемещение файла, который ссылается на ресурс относительно, означает, что вы должныобновите его ссылку, если файл был в /file/folder/stuff/file.ext, и вы переместили его, вам необходимо обновить ссылку на ваш /array/file.ext затем.
  • абсолютный: менее переносимый, если вы его не используетев смысле URL (включая javascript / images и т. д.)
  • absolute: перемещение файлов, ссылающихся на другие файлы, означает, что вам не нужно изменять их код.
  • и многое другое ...

Лично я предпочитаю абсолют, но на самом деле это зависит от ваших рассуждений, ни то, ни другое не верно.

Да, и уточнить (если вы незнаю) ../ просто означает «перейти вниз на один каталог, а затем посмотреть изре, он используется в относительной ссылке, где вы указываете, где файл относительно вашего скрипта, который его вызывает.

...