![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Всем привет.
В общем задача вот в чем:
Тоесть мне надо что-бы все что находилось между фигурными скобками (lang{bla_bla}) заменялось содержимым из массива, с ключём \\0 (ну т.е все что он найдёт по регулярке). В примере выше - ссылка конечно же не срабатывает. Как это можно правильно записать? Это сообщение отредактировал(а) gta4kv - 5.8.2008, 22:00 |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
gta4kv,
1. Оптимальнее использовать preg_replace_callback http://ru2.php.net/manual/ru/function.preg...ce-callback.php 2. Наиболее рациональная и оптимальная регулярка:
|
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Mal Hack, чудно. Спасибо.
Добавлено через 36 секунд [ + ] правда реализация выглядит как то подозрительно ![]() |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
gta4kv, можно так же воспользоваться модификатором 'e'
Это сообщение отредактировал(а) sTa1kEr - 5.8.2008, 23:01 |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А что тебя смущает? В данном случае вообще нужно, но как мне кажется, с точки зрения теории компиляторов лучше сначала все собрать в массив, потом этот массив послать в функцию, и потом все пачкой заменить... Хотя, надо тестировать, конечно. |
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Да нет, просто непривычная реализация. Я уже начинаю побаиваться кода который пишу ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
||||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Конец мира не напишу, а конец себе дык вполне. И всем кто видит мои исходнеки =))) |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
||||
|
||||
gta4kv |
|
||||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Спасибо за идею ![]() Это сообщение отредактировал(а) gta4kv - 6.8.2008, 00:00 |
||||
|
|||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
тем паче, что все возможные значения для замены у тебя есть(ключи массива bj::$lang). а функция str_replace вполне себе принимает аргументами два массива: для поиска и для замены |
|||
|
||||
gta4kv |
|
||||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
У меня как бы не в планах писать для поиска массив отдельно, а если использовать регулярку + str_replace что-бы выудить массив для поиска, то какой смысл? Вот так вполне даже ничего работает:
![]() (хотя тут наверное актуальнее вопрос - "а что быстрее выполняется?") Это сообщение отредактировал(а) gta4kv - 6.8.2008, 00:33 |
||||
|
|||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
кто тебе такое сказал?
где тут регулярные выражения? |
||||
|
|||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Сдаюсь
![]() А у такого решения есть плюсы над тем кодом который я показал выше? |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
в зависимости от версии РНР(степени оптимизированности механизма регулярных выражений) и от количества вхождений. может быть значительная разница в скорости. а может быть и совсем незначительная. в любом случае, стрелять из пушки по воробьям бессмысленно.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |