从后面找到第一个斜杠(文件路径)

时间:2014-10-01 08:04:57

标签: php

我有这条线。

$line = '/opt/fings/interface/20140905111645811106.txt 0';

我用它来追踪尾随的0/r/n

$pos = strpos($lines[$x], ' ');
$file = '.'.substr($lines[$x], 0, $pos);

所以我留下了这个/opt/fings/interface/20140905111645811106.txt

但我需要单独的文件名。例如20140905111645811106.txt

何我从背面抓住字符串直到第一次出现斜线?

7 个答案:

答案 0 :(得分:6)

在这种情况下,您可以使用basename()

$line = '/opt/fings/interface/20140905111645811106.txt';
echo basename($line); // 20140905111645811106.txt

答案 1 :(得分:4)

试试这个 -

$str = '/opt/fings/interface/20140905111645811106.txt';
$file = end(explode('/',$str));
echo $file;  

输出将为 - 20140905111645811106.txt

答案 2 :(得分:3)

第三个决定

echo pathinfo ( '/opt/fings/interface/20140905111645811106.txt', PATHINFO_BASENAME  );

pathinfo

答案 3 :(得分:2)

使用strrchr()查找字符串中字符的最后一次出现。 请参阅:http://php.net/manual/en/function.strrchr.php

$position = strrchr($str, '/');

答案 4 :(得分:2)

你可以使用这个

$text = '/opt/fings/interface/20140905111645811106.txt'
substr( strrchr( $text, '/' ), 1 );

答案 5 :(得分:2)

另一种方法是使用substrstrrpos

$filename = substr($line, strrpos($line, "/")+1);

答案 6 :(得分:2)

通过preg_match

$line = '/opt/fings/interface/20140905111645811106.txt';
preg_match('~[^/]+$~', $line, $match);
echo $match[0]; // 20140905111645811106.txt