PHP code example of dixflatlinr / fname

1. Go to this page and download the library: Download dixflatlinr/fname library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

dixflatlinr / fname example snippets



use \DF\App\FName\FName;
file.ext');            # /easy/path/file.ext
$f->path('/var/www')->body('%_readme')->ext('txt'); # /var/www/file_readme.txt


use \DF\App\FName\FName;
ody.info.ext';

$f = FName::make($filename);  
$f = new FName($filename);  
$f = FName::makeByParts('/hevy/path/','filebody.info','ext');  
  
(string)$f; # /hevy/path/filebody.info.ext
$f->path;   # /hevy/path/
$f->body;   # filebody.info
$f->ext;    # ext
$f->extLong # info.ext

FName::make('/hevy/path/filebody.ext')
->path('/var/www')           # /var/www/filebody.ext
->body('%.indy')             # /var/www/filebody.indy.ext
->ext('mp4');                # /var/www/filebody.indy.mp4
->filename('newfile.ext')    # /var/www/newfile.ext

FName::make('')
->set('/','readme','txt');   # /readme.txt

FName::make('/var/www/pugs_attacking.jpg')
->gen('%Pnewfilename%X'); # /var/www/newfilename.jpg
/*  
* %A - Full filename => /var/www/pugs_attacking.jpg  
* %P - Path => /var/www/  
* %F - Filename (body and ext) => pugs_attacking.jpg
* %B - Filename body => pugs_attacking  
* %E - Filename extension without dot => jpg  
* %X - Filename extension with dot => .jpg  
* %L - Filename long extension => jpg
*/

FName::make('filename.ext', FName::FLAG_DISABLE_PLACEHOLDER)  
 ->body('%leftalone'); # %leftalone.ext  


FName::make('',FName::FLAG_DISABLE_SMARTPATH)  
 ->path('/var/www//slashes///'); #/var/www//slashes///

//A path, no filename  
$filename = '/var/www/whatever/';  
$f = new FName($filename);  
$this->assertEquals(['/var/www/whatever/','',''], [$f->path, $f->body, $f->ext]);  
  
//A path's last segment without an ending slash is interpreted as a filename  
$filename = '/var/www/whatever';  
$f = new FName($filename);  
$this->assertEquals(['/var/www/','whatever',''], [$f->path, $f->body, $f->ext]);  
  
//Full path, with filename, without extension  
$filename = '/var/www/whatever/filename';  
$f = new FName($filename);  
$this->assertEquals(['/var/www/whatever/','filename',''], [$f->path, $f->body, $f->ext]);  
  
//Full path, with filename and extension  
$filename = '/var/www/whatever/filename.ext';  
$f = new FName($filename);  
$this->assertEquals(['/var/www/whatever/','filename','ext'], [$f->path, $f->body, $f->ext]);

//double dots is a filename without extension (body only)  
$filename = '..';  
$f = new FName($filename);  
$this->assertEquals(['','..',''], [$f->path, $f->body, $f->ext]);  
  
//single dot is a filename without extension (body only)  
$filename = '.';  
$f = new FName($filename);  
$this->assertEquals(['','.',''], [$f->path, $f->body, $f->ext]);  
  
//lots of dots is still considered a filename without extension (body only)  
$filename = '......';  
$f = new FName($filename);  
$this->assertEquals(['','......',''], [$f->path, $f->body, $f->ext]);  
  
//lots of dots as body with an added extension - last dot is always consumed when separating the extension  
$filename = '......ext';  
$f = new FName($filename);  
$this->assertEquals(['','.....','ext'], [$f->path, $f->body, $f->ext]);  

//Multiple dots in filename
$filename = '/var/www/whatever/flying...pugs.plus.the.birds...ext';  
$f = new FName($filename);  
$this->assertEquals  
(  
 ['/var/www/whatever/','flying...pugs.plus.the.birds..','ext'],  
  [$f->path, $f->body, $f->ext]  
);