У меня есть php-файл, который перенаправляет пользователя к нужному руководству пользователя, в зависимости от ссылки, по которой он щелкнул.Поскольку у нас есть много руководств (некоторые из них являются прежними версиями, мы должны соответствовать последней), я вынужден использовать REGEX, чтобы найти то, что я хочу.
Давайте использовать фрукты, например.В магазине у нас есть ручные имена, которые могут выглядеть следующим образом:
$manuals = [
'dc-cn-13apple-frv4-5.pdf',
'dc-cn-33_banana-strawberryv10-108.pdf',
'dc-cn-32peachenv10-125.pdf',
'dc-cn-23lemoncoconutwatermelonitv09-130.pdf'
];
Так что существует множество возможных комбинаций, важно то, что они всегда начинаются с 'dc-cn-', а затем с двухзначного числаэто важно для нас (это как ссылка на фрукт).
Далее следует несколько слов, чтобы описать фрукт, за которым сразу следуют 2 буквы, чтобы узнать на каком языке это руководство, и 'v08' или 'v10 'чтобы узнать версию.Иногда эти 2 буквы и цифры для версии поставляются с тире (например, -frv4).
Наконец, они всегда заканчиваются случайным 3-значным числом (автоматически присваиваемым используемой нами CMS), за которым следует'.pdf'.
Я пытался манипулировать своим массивом так:
foreach ($manuals as $manual) {
if(preg_match('/^[0-9][0-9][\.]pdf$/', $manual)) {
echo 'OK';
}
}
Но пока мой REGEX ничего не соответствует, и я действительно чувствую, что понятия не имею, что яЯ делаю.
Это действительно помогло бы мне иметь возможность проверить первый номер ('dc-cn- 32 ', 'dc-cn- 13 '), 2 буквы в конце слова (' - fr v4 ',' peach en v10 'или' дыня it v09-130.pdf ') и 3 последние цифры (' melonitv09- 130 .pdf ').
Тогда я бы preg_split
все это и начал сравнивать.