2014-10-01 67 views
5

我有这条线。从后面找到第一个斜杠(文件路径)

$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

我该从后面抢到字符串到第一次出现斜杠吗?

+1

使用基本名()函数来获取20140905111645811106.txt。例如echo basename($ line); – hizbul25 2014-10-01 08:09:21

+0

他们不叫反斜杠。 '/'是一个正斜杠。 – mario 2014-10-01 08:48:19

+0

@mario - 真 - 已更改 – morne 2014-10-01 08:56:08

回答

6

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

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

谢谢,这很方便。作品完美。 – morne 2014-10-01 08:08:10

+0

sure @mornenel im很高兴这有帮助 – Ghost 2014-10-01 08:08:35

4

试试这个 -

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

输出将是 - 20140905111645811106.txt

+0

这工作100%一样好,谢谢,但@Ghost第一次抱歉 – morne 2014-10-01 08:08:36

+0

多数民众赞成在...你的欢迎:) – TBI 2014-10-01 08:09:48

3

三决定

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

pathinfo

2

您可以使用这一

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

的另一种方法,使用substrstrrpos

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

通过preg_match

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