- end: documentation ( source)
- array_flip: documentation ( source)
- implode: documentation ( source)
- array_diff_key: documentation ( source)
- preg_split: documentation ( source)
- preg_replace: documentation ( source)
<?php
$filename = '1234_56_78 A_FAIRLY_SHORT_TITLE_D.pdf';
$filename = preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename);
$parts = preg_split( "(_| )", $filename );
$project_no = $parts[0];
$series_no = $parts[1];
$sheet_no = $parts[2];
$revision = end($parts);
$title = implode(' ',\array_diff_key($parts, array_flip([0,1,2,count($parts)-1])));
echo $title;