|
|
|
| Добрый вечер, форумчане. Нужна Ваша экстренняя помощь!
Есть три строки:
1) price
2) price1
3) price1_1
Как распознать каждую из них и занести в соответствующие массивы?
1) array('section' => 'price')
2) array('section' => 'price', 'group' => 1)
3) array('section' => 'price', 'group' => 1, 'id' => 1)
Я упал на поиске соответсвий уже в первой строке.
preg_match('/^[a-zA-Z]$/', 'price') - Выдаёт false...
Спасибо всем заранее! | |
|
|
|
|
|
|
|
для: n1ko
(10.12.2012 в 21:16)
| | Первую строку вычислил! Забыл знак "+" перед долларом! | |
|
|
|
|
|
|
|
для: n1ko
(10.12.2012 в 21:16)
| | Вторую строчку обнаружил следующим способом: '/^([a-z])+([0-9])+$/'
А третья сдалась при данной регулярке: '/^([a-z])+([0-9])+(_)+([0-9])+$/'
Итого:
if (preg_match('/^[a-z]+$/', $request[1])) {
echo 'Раздел';
} else if (preg_match('/^([a-z])+([0-9])+$/', $request[1])) {
echo 'Раздел | Группа';
} else if (preg_match('/^([a-z])+([0-9])+(_)+([0-9])+$/', $request[1])) {
echo 'Раздел | Группа | ИД';
} else {
echo 'Выпад';
}
Если что-то можно сделать чище и лучше - буду рад выслушать!
Осталось разбить на массивы. | |
|
|
|
|
|
|
|
для: n1ko
(10.12.2012 в 21:16)
| | Смешно... Пока ждал - решил вопрос своими силами :) Всё работает, выпадает на строках, которые не соответствуют запросам!
if (preg_match('/^([a-z]{1,})+$/', $request[1], $result)) {
echo print_r($result);
} else if (preg_match('/^([a-z]{1,})([0-9]{1,})+$/', $request[1], $result)) {
echo print_r($result);
} else if (preg_match('/^([a-z]{1,})([0-9]{1,})_([0-9]{1,})+$/', $request[1], $result)) {
echo print_r($result);
} else {
echo 'Выпад';
}
|
Модераторы, можете удалить этот пост :) | |
|
|
|