czproject/path-helper

Helper class for creating relative paths, absolutizing, etc.

v4.1.0 2018-06-24 12:07 UTC

README

Build Status

Helper class for creating relative paths, absolutizing paths,...

Become a Patron! Buy me a coffee

Installation

Download a latest package or use Composer:

composer require czproject/path-helper

Library requires PHP 5.3.0 or later.

Usage

use CzProject\PathHelper;

Absolutize path

PathHelper::absolutizePath($path);

PathHelper::absolutizePath('path/to/my/../text/./file.txt');

Returns /path/to/text/file.txt

You can use second parameter $prefix:

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

$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?

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 /.

PathHelper::normalizePath($path);

PathHelper::normalizePath('\\path\\to\\file.txt');

Returns /path/to/file.txt.

Helper instance

$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
Author: Jan Pecha, https://www.janpecha.cz/