PHP получить конкретное слово из строки, если существует

Так что у меня есть куча имен файлов, таких как

  $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-

0

Решение

Попробуй это:

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

2

Другие решения

В вашем примере ваша подстрока начинается с 0 и заканчивается в позиции «Страница». Пытаться

$pageNum = substr($filename, strpos($filename, 'Page'), -4);

получить деталь от «Пейдж» до конца (без точки и продления, то есть -4).

0

$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;
|
0
По вопросам рекламы [email protected]