Так что у меня есть куча имен файлов, таких как
$filename = "somefile-Page-1.pdf"$filename = "somefile-Page-2.pdf"
Что я пытаюсь сделать, это получить номер страницы в имени файла
so that $pageNumber will resurn Page-1
Iv попробовал следующее:
$pageNum = substr($filename, 0, strpos($filename, 'Page'));
но это заканчивается возвращением
somefile-
Попробуй это:
$filename = 'somefile-Page-2.pdf';
preg_match('/(Page\-(\d+))\.pdf/i', $filename, $matches);
и массив совпадений будет иметь формат:
массив (размер = 3)
0 => строка ‘Page-2.pdf’ (длина = 10)
1 => строка «Страница-2» (длина = 6)
2 => строка ‘2’ (длина = 1)
В вашем примере ваша подстрока начинается с 0 и заканчивается в позиции «Страница». Пытаться
$pageNum = substr($filename, strpos($filename, 'Page'), -4);
получить деталь от «Пейдж» до конца (без точки и продления, то есть -4).
$filename = "somefile-Page-2.pdf";
public function getPageNumber($filename) {
// Explodes on "-"$explodedFilename = explode('-', $filename);
// Find the key to the Page word
$keyToPage = array_search("Page", $explodedFilename);
// If the key is found and the next array item exists, which contains the number, go and return it
if( $keyToPage && isset($explodedFilename[$keyToPage++]) ) {
return $explodedFilename[$keyToPage] . "-" . $explodedFilename[$keyToPage++];
}
return null;
|