tags:

views:

47

answers:

3
public/images/portfolio/i-vis/1.jpg

How could i remove all the path regardless of what the filename is using php?

+5  A: 

Have a look at basename()

$path = 'public/images/portfolio/i-vis/1.jpg'
$name = basename($path); // $name == '1.jpg'

Also, dirname() fetches the other part

$dir = dirname($path); // $dir == 'public/images/portfolio/i-vis'

If you need even more information - there is pathinfo()

$info = pathinfo($path);
var_dump($info);

produces

array(4) {
    ["dirname"]=>
    string(29) "public/images/portfolio/i-vis"
    ["basename"]=>
    string(5) "1.jpg"
    ["extension"]=>
    string(3) "jpg"
    ["filename"]=>
    string(1) "1"
}

So $info['filename'] gives you the file without the extension.

Emil Ivanov
This is cool, can we go one step further and find just the filename without the extension...
Andy
+1  A: 
echo basename($string);

Take a look at the basename function.

erenon
A: 

alternative solution. Just a bunch of explodes

$str='public/images/portfolio/i-vis/1.jpg';
$s = end(explode("/",$str));
print "filename " . $s."\n";
$e = explode(".", $s );
print "without extension: $e[0]\n";