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
4

9 回答 9

4

用这个

$str = "doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf";
echo substr($str,strrpos($str,'_'));
于 2013-05-20T09:13:53.070 回答
3

简单地分解字符串并从数组中获取最后一个元素

$arr = explode("_", 'doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf');
   echo end($arr);
于 2013-05-20T09:10:49.027 回答
2

你可以这样解决它:

echo array_pop(explode('_', $string));
于 2013-05-20T09:10:36.473 回答
1

尝试这个

$result = preg_replace('/(?m)^.+_(.+)$/', '$1', $subject);
于 2013-05-20T09:09:56.587 回答
1

试试strchr

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

echo substr(strrchr($str, "_"), 1);
于 2013-05-20T09:10:13.463 回答
0

我们应该计算最新破折号的位置吗?
如果doc/20-05-2013_08-44-19_Rusly_60_前缀具有恒定的 33 长度怎么办?
结果可能是samp_le1.pdf

echo substr( $str, 33 );
于 2013-05-20T09:19:18.553 回答
0

使用以下函数: http://php.net/manual/en/function.strrpos.php http://php.net/manual/en/function.substr.php

strrpos 查找最后一次出现的字符是什么时候(例如它是_)当没有找到出现时它返回false。然后用 substr 获取字符串

然后代码将是

$start = (strrpos('_', $string) !== false) ? strrpos($string) : 0;
$new_string = substr($string, $start);
于 2013-05-20T09:09:42.110 回答
0

你可以这样做:

$value = array_pop( explode( "_", $yourVar) );
echo $value;
于 2013-05-20T09:09:55.297 回答
0
  1. 用 strrpos 定位破折号的位置
  2. 使用 substr($roginal, $dashposition + 1)
于 2013-05-20T09:09:25.273 回答