Php 如何从后面开始修剪绳子直到破折号?
我想知道,我们是否可以从后面开始修剪下面的绳子直到破折号 字符串Php 如何从后面开始修剪绳子直到破折号?,php,regex,Php,Regex,我想知道,我们是否可以从后面开始修剪下面的绳子直到破折号 字符串 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 用strrpos定位仪表板的位置 使用substr($roginal,$dashposition+1) 使用以下功能: strrpos查找字符最后一次出现的时间(例如它是_),如果未找到任何出现的时间,则返
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
使用以下功能: strrpos查找字符最后一次出现的时间(例如它是_),如果未找到任何出现的时间,则返回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);
试一试
你可以这样解决:
echo array_pop(explode('_', $string));
只需分解字符串并从数组中获取最后一个元素,如
$arr = explode("_", 'doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf');
echo end($arr);
用这个
$str = "doc/20-05-2013_08-44-19_Rusly_60_sample1.pdf";
echo substr($str,strrpos($str,'_'));
我们应该计算最新破折号的位置吗?
如果
doc/20-05-2013\u 08-44-19\u Rusly\u 60\u
前缀具有恒定的33长度怎么办?结果可能是
samp_le1.pdf
echo substr( $str, 33 );
格式是否始终为doc/{{filename}?如果是这样,您可以使用explode(),例如$parts=explode(“”,$string);echo$parts[计数($parts)];是的,总是和医生在一起。。我只想向用户显示短文件名sample1.pdf,直到第二部分没有破折号为止。文件名可能包含破折号。它是常量,如果Rusly_60也是常量,则33是“最后一个”破折号的位置。它是否适用于
doc/20-05-2013\u 08-44-19\u Rusly_60\u nice_file.pdf
?非常优雅的解决方案。
echo substr( $str, 33 );