- Переменная $PATH что это и для чего нужно?
- Войдите, чтобы написать ответ
- Просмотр L2 соседей в bridge на linux?
- Absolute & Relative Paths In PHP (A Simple Guide)
- TLDR – QUICK SLIDES
- TABLE OF CONTENTS
- PHP FILE PATH
- 1) ABSOLUTE & RELATIVE PATH
- 2) CURRENT WORKING DIRECTORY (CWD)
- 3) CONFUSION WITH THE CURRENT WORKING DIRECTORY
- 4) CHANGING THE WORKING DIRECTORY
- 5) MAGIC CONSTANTS
- 6) MAGIC CONSTANTS VS WORKING DIRECTORY
- 7) MORE PATH YOGA
- SERVER SUPERGLOBAL
- PATH INFO
- BASENAME
- DIRNAME
- REALPATH
- DOWNLOAD & NOTES
- SUPPORT
- EXAMPLE CODE DOWNLOAD
- EXTRA BITS & LINKS
- EXTRA) FORWARD OR BACKWARD SLASH?
- EXTRA) CASE SENSITIVE
- ALL THE PATH-RELATED VARIABLES
- ALL THE PATH-RELATED FUNCTIONS
- LINKS & REFERENCES
- INFOGRAPHICS CHEAT SHEET
- THE END
- Как добавить путь до … в переменную PATH
- Что такое переменная PATH и для чего она нужна?
- Как добавить PHP в системные переменные среды?
- Категории
- Свежие записи
Переменная $PATH что это и для чего нужно?
в переменную
$PATH
можно добавить пути , но чем она является ? массивом с данными или происходит конкатенация к строке ?
Массив строк по сути.
Разделенных символом «:» (в Windows — аналогично все, только разделено символом «;»)
Используется при запуске программ прежде всего (иногда и для других вещей)
Список каталогов, где будет искаться программа, если не будет найдена в текущем каталоге.
Является просто строкой. Одной строкой.
Но некоторые GUI-шные утилиты при редактировании разделяют её на отдельные элементы. Для удобства редактирования.
У меня где то написано что в PATH входит текущий каталог?
Вы видимо имели ввиду форму «./somefilename»
в Линуксе текущий каталог по умолчанию не ищется.
Просто многие добавляют его в саму PATH таким образом:
PATH=.:$PATH
Это обычная строковая переменная.
В линуксе есть только
числовые переменные: $VARIABLE
строковые переменные: $VARIABLE
массивы: $VARIABLE[x]
все.
PATH — обычная строковая переменная, значения которой разделяются двоеточием.
В ней список директорий, в которых следует искать исполняемый файл, если вы в командной строке пишете не полный путь к нему.
именно поэтому скрипты из директории, не указанной в PATH, как впрочем и исполняемые файлы следует запускать вот так: ./имя_файла с точкой и слэшом. Это означает запустить файл из текущей директории. Если этого не сделать будет, во-первых, не нужный поиск данного файла по всем каталогам, указанным в $PATH, а во-вторых, в случае полного совпадения имени запускаемого файла, система запустит не желаемый файл из директории, а подобный, найденный в директориях $PATH
Войдите, чтобы написать ответ
Просмотр L2 соседей в bridge на linux?
Absolute & Relative Paths In PHP (A Simple Guide)
Welcome to a quick tutorial on absolute and relative paths in PHP. So you have set a verified file path, but PHP is still complaining about “missing” files and folders? Yes, it is easy to get lost in absolute and relative paths in PHP.
- An absolute path refers to defining the full exact file path, for example, D:\http\project\lib\file.php .
- While a relative path is based on the current working directory, where the script is located. For example, when we require «html/top.html» in D:\http\page.php , it will resolve to D:\http\html\top.html .
The covers the basics, but let us walk through more on how file paths work in PHP – Read on!
ⓘ I have included a zip file with all the source code at the start of this tutorial, so you don’t have to copy-paste everything… Or if you just want to dive straight in.
TLDR – QUICK SLIDES
TABLE OF CONTENTS
PHP FILE PATH
All right, let us now get into the examples of how file paths work in PHP.
1) ABSOLUTE & RELATIVE PATH
- An absolute file path is simply the “full file path”. Although a bit long-winded, it’s hard to mess up with this one.
- On the other hand, the relative file path is based on the current working directory.
But just what the heck is the “current working directory”? Follow up with the next example.
2) CURRENT WORKING DIRECTORY (CWD)
In simple terms, the current working directory is the folder where the script is placed in. We can easily get the current working directory with the getcwd() function.
3) CONFUSION WITH THE CURRENT WORKING DIRECTORY
// (A) CWD IS BASED ON THE FIRST SCRIPT! // if this script is placed at "D:\http\inside\3-cwd.php" // cwd is "D:\http\inside" require "D:\\http\\2-cwd.php";
So far so good with relative paths? Now comes the part that destroyed many beginners, take note that this example script is placed at D:\http\inside . Guess what getcwd() shows when we run this example? Yes, the current working directory now changes to D:\http\inside . Keep in mind, the current working directory is fixed to the first script that runs .
4) CHANGING THE WORKING DIRECTORY
The current working directory will surely mess up a lot of relative paths. So, how do we fix this problem? Thankfully, we can use the chdir() function to change the current working directory.
5) MAGIC CONSTANTS
"; // (B) CURRENT FOLDER // if this file is placed at "D:\http\5-magic.php" // __DIR__ is "D:\http" echo __DIR__ . "
";
- __FILE__ is the full path and file name where the current script is located.
- __DIR__ is the folder where the current script is located.
6) MAGIC CONSTANTS VS WORKING DIRECTORY
"; // (B) CURRENT FOLDER // if this file is placed at "D:\http\inside\6-magic.php" // __DIR__ is "D:\http\inside" echo __DIR__ . "
"; // (C) GET PARENT FOLDER $parent = dirname(__DIR__) . DIRECTORY_SEPARATOR; require $parent . "5-magic.php";
- The current working directory is based on the first script that we run.
- Magic constants are based on where the scripts are placed in .
Yes, magic constants are the better way to do “pathfinding”, and to build absolute paths.
7) MORE PATH YOGA
"; // D:\http echo $_SERVER["PHP_SELF"] . "
"; // 7-extra.php echo $_SERVER["SCRIPT_FILENAME"] . "
"; // D:/http/7-extra.php // (B) PATH INFO $parts = pathinfo("D:\\http\inside\\index.php"); echo $parts["dirname"] . "
"; // D:\http\inside echo $parts["basename"] . "
"; // index.php echo $parts["filename"] . "
"; // index echo $parts["extension"] . "
"; // php // (C) BASENAME $path = "D:\\http\\inside"; echo basename($path) . "
"; // inside $path = "D:\\http\\inside\\foo.php"; echo basename($path) . "
"; // foo.php $path = "D:\\http\\inside\\foo.php"; echo basename($path, ".php") . "
"; // foo // (D) DIRNAME $path = "D:\\http\\inside\\"; echo dirname($path) . "
"; // D:\http echo dirname($path, 2) . "
"; // D:\ // (E) REALPATH echo realpath("") . "
"; // D:\http echo realpath("../") . "
"; // D:\
Finally, this is a quick crash course on the various variables and functions that may help you find the file path.
SERVER SUPERGLOBAL
- $_SERVER[«DOCUMENT_ROOT»] – Contains the root HTTP folder.
- $_SERVER[«PHP_SELF»] – The relative path to the script.
- $_SERVER[«SCRIPT_FILENAME»] – The full path to the script.
PATH INFO
The PHP pathinfo() function will give you bearings on a given path:
- dirname – The directory of the given path.
- basename – The filename with extension.
- filename – Filename, without extension.
- extension – File extension.
BASENAME
The basename() function will give you the trailing directory or file of a given path.
DIRNAME
The dirname() function will give you the parent directory of a given path.
REALPATH
The realpath() function gives you a canonicalized absolute path… Kind of useful, but still based on the current working directory.
DOWNLOAD & NOTES
Here is the download link to the example code, so you don’t have to copy-paste everything.
SUPPORT
600+ free tutorials & projects on Code Boxx and still growing. I insist on not turning Code Boxx into a «paid scripts and courses» business, so every little bit of support helps.
EXAMPLE CODE DOWNLOAD
Click here for the source code on GitHub gist, just click on “download zip” or do a git clone. I have released it under the MIT license, so feel free to build on top of it or use it in your own project.
EXTRA BITS & LINKS
That’s all for the tutorial, and here is a small section on some extras and links that may be useful to you.
EXTRA) FORWARD OR BACKWARD SLASH?
Not really a big problem though, just use DIRECTORY_SEPARATOR in PHP and it will automatically resolve to the “correct slash”.
EXTRA) CASE SENSITIVE
- We have a Foo.php script.
- Windows is not case-sensitive – require «FOO.PHP» will work.
- But Mac/Linux is case-sensitive – require «FOO.PHP» will throw a “file not found” error.
ALL THE PATH-RELATED VARIABLES
ALL THE PATH-RELATED FUNCTIONS
- dirname – The directory of the given path.
- basename – The filename with extension.
- filename – Filename, without extension.
- extension – File extension.
LINKS & REFERENCES
INFOGRAPHICS CHEAT SHEET
THE END
Thank you for reading, and we have come to the end of this guide. I hope it has helped you find the true path, and if you have anything to add to this guide, please feel free to comment below. Good luck and happy coding!
Как добавить путь до … в переменную PATH
В различных руководствах и документациях часто встречается пункт «добавьте путь до чего либо в переменную PATH». Что это за переменная и как в нее что-то добавить описано ниже, в этой заметке.
Что такое переменная PATH и для чего она нужна?
Если коротко, то PATH это такая переменная, с помощью нее операционная система ищет исполняемые объекты, которые вы пытаетесь вызвать в командной строке.
Другими словами, PATH позволяет запускать исполняемые файлы, без указания их точного местоположения на диске. Например, после установки Python на Windows, для выполнения скрипта Питона нам достаточно в командной строке набрать:
Нам не пришлось указывать точного пути до интерпретатора Питона (в моем случае C:\Users\Alex\AppData\Local\Programs\Python\Python37-32\python.exe) как раз из-за установленной переменной PATH.
соответствующую программу. Этим можно воспользоваться в своих целях двумя способами:
Как добавить PHP в системные переменные среды?
Для примера добавим PHP в переменную PATH.
У меня на компьютере интерпретатор php располагается в каталоге C:\xampp\php72, поэтому чтобы выполнить php скрипт в командной строке, мне нужно ввести:
Но согласитесь, гораздо удобней так:
К тому же некоторые программы, например IDE будут автоматически «понимать» где расположен интерпретатор php.
Итак, чтобы добраться до настроек переменной PATH, нам сначала нужно открыть Панель управления Windows, поскольку Микрософт постоянно меняет ее положение, проще всего найти ее через поиск:
Далее нужно выбрать Система -> Дополнительные параметры системы.
В последних версия Windows 10 Дополнительные параметры системы открываются по такому пути:
Сначала открываете Все параметры -> Система, далее слева внизу выбираете О программе и справа в списке будет нужный пункт Дополнительные параметры системы.
В открывшемся окне Свойства системы нужно выбрать вкладку Дополнительно и внизу будет кнопка Переменные среды.
Выбираем переменную среды Path и нажимаем Изменить. После этого нажимаем кнопку Создать и вводим пусть до папки, где расположен наш интерпретатор PHP, в моем случае C:\xampp\php72.
Далее везде нажимаем ОК, все, переменная среды для PHP сохранена.
Теперь, если перезапустить командную строку, можно выполнять php скрипты не указывая полного пусти к интерпретатору.