Здравствуйте, гость ( Вход | Регистрация )
Aug 24 2008, 21:41
IP: 10.10.0.0/16 | Сообщение
#1
|
|
![]() Пикачу, проголодался ![]() ![]() ![]() ![]() ![]() Группа: Members Сообщений: 882 Регистрация: 20-August 04 Из: Красноярск Пользователь №: 95 Вес: 4 кг
Удалено: 18.41% |
Код <cms type="module" name="main" \><cms type="file" name="base.html" \> Нужно расчленить в массив [0][0] = <cms type="module" name="main" \> [0][1] = module [0][2] = main - это был первый фрагмент подключения [1][0] = <cms type="file" name="base.html" \> [1][1] = file [1][2] = base.html Я делал так: Код preg_match_all("/<cms type\=.(\w*).+name\=.(\w*\W*\w+).+ \\\>/", $this->html, $matches); Но вся загвостка в том, что именно два блока <cms рядом это выражение принимает за один! Помоготие... ---------------24th August 2008 - 22:20------------- Код <cms type=\"module\" name=\"main\" \><cms type=\"file\" name=\"base.html\" \> Так вернее будет ---------------24th August 2008 - 22:41------------- Код <cms type\=.(\w*). name\=.(\w*\W*\w+). .> Вот оно, не красивое, уродливое но выражение... Если предложите лучше - буду очень рад испытать! Сообщение отредактировал Ernest - Aug 24 2008, 21:09 -------------------- Ernest
ftp://Ernest |
|
|
|
![]() |
Sep 5 2008, 23:27
IP: 10.10.0.0/16 | Сообщение
#2
|
|
![]() ++++++++++++++++++++ ![]() ![]() ![]() Группа: Members Сообщений: 223 Регистрация: 25-June 05 Из: г.Новосибирск, ул.Пирогова 14 Пользователь №: 1047 Вес: 2 кг
Удалено: 18.32% |
Код <cms type="module" name="main" \><cms type="file" name="base.html" \> Нужно расчленить в массив [0][0] = <cms type="module" name="main" \> [0][1] = module [0][2] = main - это был первый фрагмент подключения [1][0] = <cms type="file" name="base.html" \> [1][1] = file [1][2] = base.html Я делал так: Код preg_match_all("/<cms type\=.(\w*).+name\=.(\w*\W*\w+).+ \\\>/", $this->html, $matches); Но вся загвостка в том, что именно два блока <cms рядом это выражение принимает за один! Помоготие... ---------------24th August 2008 - 22:20------------- Код <cms type=\"module\" name=\"main\" \><cms type=\"file\" name=\"base.html\" \> Так вернее будет ---------------24th August 2008 - 22:41------------- Код <cms type\=.(\w*). name\=.(\w*\W*\w+). .> Вот оно, не красивое, уродливое но выражение... Если предложите лучше - буду очень рад испытать! Ну регексы всегда уродливы (а кому-то красивы) кажутся. Меня тут только смущает обратный слеш в конце тега обычно прямой пишут "/". Знак равенства экранировать не надо. И непонятно зачем такая подробность ".(\w*\W*\w+)." и в то же время на необходимость в кавычках и последнем слеше не обращается внимание. (ну я люблю перепроверять По-моему, немного лучше было бы так: /<cms type=\"(.*)\" name=\"(.*)\" \/>/ \w - мне кажется тоже сильное ограничение, а вдруг цифры и подчёркивания пойдут... Хотя твой вариант вполне хороший. Вот это было бы страшно (зато очень подробно и работает почти так же быстро): /<cms\s+type=\"([\w\d_]*)\"\s+name=\"([\w\d_]*\.?[\w\d_]*)\"\s+\/>/ Сообщение отредактировал said - Sep 5 2008, 23:29 -------------------- سيّد علي |
|
|
|
![]() ![]() |
| Текстовая версия | Сейчас: 15th December 2025 - 17:40 | |