2013-05-20 51 views
2

我想知道,如果我們可以修剪下面的字符串從後面開始直到破折號?如何從後面修剪字符串直到破折號?

字符串

doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf 
doc/20-05-2013_08-44-19_Rusly_60_logo.png 

輸出

sample1.pdf 
logo.png 
+0

該格式總是doc/{{filename}}?如果是這樣,你可以使用explode()例如 $ parts = explode('_',$ string); echo $ parts [count($ parts)]; – ncremins

+0

是總是與doc ..我只是想顯示短文件名sample1.pdf給用戶。 – rusly

+0

直到第二部分沒有短劃線爲止。文件名可能包含破折號。 –

回答

3

使用此

$str = "doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf"; 
echo substr($str,strrpos($str,'_')); 
0
  1. 定位與strrpos破折號的位置
  2. 使用SUBSTR($ roginal,$ dashposition + 1)
0

你可以這樣做:

$value = array_pop(explode("_", $yourVar)); 
echo $value; 
1

試試這個

$result = preg_replace('/(?m)^.+_(.+)$/', '$1', $subject); 
1

嘗試strchr

$str = "doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf"; 

echo substr(strrchr($str, "_"), 1); 
2

你可以解決這個問題是這樣的:

echo array_pop(explode('_', $string)); 
3

簡單的爆炸字符串,並從數組最後一個元素像

$arr = explode("_", 'doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf'); 
    echo end($arr); 
+0

它適用於'doc/20-05-2013_08-44-19_Rusly_60_nice_file.pdf'嗎? –

+0

非常優雅的解決方案。 –

0

我們應該計算最新破折號的位置?
如果doc/20-05-2013_08-44-19_Rusly_60_前綴長度不變33?
可能結果是samp_le1.pdf

echo substr($str, 33); 
+0

這是恆定的,如果Rusly_60也是恆定的,那麼33是「最後」破折號的位置。 –