我想知道,如果我們可以修剪下面的字符串從後面開始直到破折號?如何從後面修剪字符串直到破折號?
字符串
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
我想知道,如果我們可以修剪下面的字符串從後面開始直到破折號?如何從後面修剪字符串直到破折號?
字符串
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
使用此
$str = "doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf";
echo substr($str,strrpos($str,'_'));
使用以下功能: http://php.net/manual/en/function.strrpos.php http://php.net/manual/en/function.substr.php
strrpos看起來當charachter的最後一次出現是(例如,它是_)如果沒有發生難度發現返回false。 然後用得到的字符串
然後SUBSTR代碼會
$start = (strrpos('_', $string) !== false) ? strrpos($string) : 0;
$new_string = substr($string, $start);
你可以這樣做:
$value = array_pop(explode("_", $yourVar));
echo $value;
試試這個
$result = preg_replace('/(?m)^.+_(.+)$/', '$1', $subject);
嘗試strchr
$str = "doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf";
echo substr(strrchr($str, "_"), 1);
你可以解決這個問題是這樣的:
echo array_pop(explode('_', $string));
簡單的爆炸字符串,並從數組最後一個元素像
$arr = explode("_", 'doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf');
echo end($arr);
它適用於'doc/20-05-2013_08-44-19_Rusly_60_nice_file.pdf'嗎? –
非常優雅的解決方案。 –
我們應該計算最新破折號的位置?
如果doc/20-05-2013_08-44-19_Rusly_60_
前綴長度不變33?
可能結果是samp_le1.pdf
?
echo substr($str, 33);
這是恆定的,如果Rusly_60也是恆定的,那麼33是「最後」破折號的位置。 –
該格式總是doc/{{filename}}?如果是這樣,你可以使用explode()例如 $ parts = explode('_',$ string); echo $ parts [count($ parts)]; – ncremins
是總是與doc ..我只是想顯示短文件名sample1.pdf給用戶。 – rusly
直到第二部分沒有短劃線爲止。文件名可能包含破折號。 –