https://github.com/czproject/path-helper
Helper class for creating relative paths, absolutizing paths,…
https://github.com/czproject/path-helper
absolute-paths php
Last synced: 7 months ago
JSON representation
Helper class for creating relative paths, absolutizing paths,…
- Host: GitHub
- URL: https://github.com/czproject/path-helper
- Owner: czproject
- License: other
- Created: 2014-03-23T14:17:09.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2023-03-13T20:06:19.000Z (about 3 years ago)
- Last Synced: 2025-01-16T01:50:14.263Z (over 1 year ago)
- Topics: absolute-paths, php
- Language: PHP
- Homepage:
- Size: 25.4 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
# CzProject\PathHelper
[](https://github.com/czproject/path-helper/actions)
[](https://packagist.org/packages/czproject/path-helper)
[](https://github.com/czproject/path-helper/releases)
[](https://github.com/czproject/path-helper/blob/master/license.md)
Helper class for creating relative paths, absolutizing paths,...
## Installation
[Download a latest package](https://github.com/czproject/path-helper/releases) or use [Composer](http://getcomposer.org/):
```
composer require czproject/path-helper
```
Library requires PHP 8.0 or later.
## Usage
``` php
use CzProject\PathHelper;
```
### Absolutize path
``` php
PathHelper::absolutizePath($path);
PathHelper::absolutizePath('path/to/my/../text/./file.txt');
```
Returns ```/path/to/text/file.txt```
You can use second parameter ```$prefix```:
``` php
PathHelper::absolutizePath('path/to/my/../text/./file.txt', NULL); // returns path/to/text/file.txt
PathHelper::absolutizePath('path/to/my/../text/./file.txt', '/file/root/'); // returns /file/root/path/to/text/file.txt
```
### Creating relative path
``` php
$source = 'root/dir/docs/1.0/index.html';
$dest = 'root/dir/imgs/image.jpg';
PathHelper::createRelativePath($source, $dest);
```
Returns ```../../imgs/image.jpg```
### Is path current?
``` php
PathHelper::isPathCurrent($path, $mask);
PathHelper::isPathCurrent('dir/file.txt', 'dir/file-2.txt'); // returns FALSE
PathHelper::isPathCurrent('dir/file.txt', 'dir/*'); // returns TRUE
PathHelper::isPathCurrent('dir/sub/file.txt', 'dir/*'); // returns FALSE
PathHelper::isPathCurrent('dir/sub/file.txt', 'dir/*/*'); // returns TRUE
PathHelper::isPathCurrent('dir/sub/file.txt', 'dir/**'); // returns TRUE
```
| Mask | Meaning
| -------- | ------------------------------------------
| ```**``` | means *everything*
| ```*``` | means *everything except ```/```*
### Normalize path
Normalizes path delimiters to `/`.
``` php
PathHelper::normalizePath($path);
PathHelper::normalizePath('\\path\\to\\file.txt');
```
Returns `/path/to/file.txt`.
### Helper instance
``` php
$helper = new CzProject\PathHelper;
$helper->absolutizePath('/path/to/to/../file');
$helper->createRelativePath('/path/to/file', '/path/to');
$helper->isPathCurrent('/path/file', '/path/*');
```
------------------------------
License: [New BSD License](license.md)
Author: Jan Pecha, https://www.janpecha.cz/