Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从后面开始修剪绳子直到破折号?_Php_Regex - Fatal编程技术网

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定位仪表板的位置
  • 使用substr($roginal,$dashposition+1)

  • 使用以下功能:

    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 );