| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > str_replace по элементам массива |
| Автор: gta4kv 17.3.2008, 20:27 | ||
| Всем привет! По соседству есть похожая тема, не стал спрашивать там, т.к нарушение правил. Есть функция для работа с lang'om в шаблоне. Все происходит вот так:
Такой вариант выглядит почему то для меня не очень оптимально. Как можно усовершенствовать? Пару слов, о том для чего это надо: Есть шаблон, по нему разбросано lang{index1}, lang{index2}, ну и etc. Сколько таких lang{(.*?)} - неизвестно.. Массив с языком тоже неизвестно какого размера, как можно заменить это функцию? Может сначала найти, а потом уже заменять то что есть в шаблоне? Или как будет оптимальнее? Заранее благодарен, фигли. ;) |
| Автор: awers 17.3.2008, 21:10 |
| Помоему более или менее нормально. Какой смысл рацианализировать то в чем нет затыка на текущем этапе? |
| Автор: gta4kv 17.3.2008, 21:14 |
| Проблем нету, но такой вариант почему то выглядит не очень оптимально. |
| Автор: Canarat 17.3.2008, 21:22 |
| http://www.php.net/preg_replace_callback |
| Автор: Feldmarschall 17.3.2008, 21:24 |
| До накопления достаточного опыта не стоит доверять ощущениям. Чаще всего они обманывают. И переживать надо не за то, что "выглядит" неоптимально, а за то, что работает неоптимально. |
| Автор: gta4kv 17.3.2008, 21:38 | ||
под выглядит я имею введу работает Если сайт например 1к+ человек в сети, а массив тыща элементов - то работать будет не жутко быстро... или мне кажется? ;) Canarat, попробую твой пример.. ;) |
| Автор: Feldmarschall 17.3.2008, 21:48 |
| Кажется. Не очень понятно, что ты имеешь в виду под словами " 1к+ человек в сети", но если речь идет о большой посещаемости, то у тебя будут совсем другие проблемы, с другими функциями, а не со str_replace. |
| Автор: gta4kv 17.3.2008, 21:55 |
| Feldmarschall, да я именно о большой посещаемости. Раз начал, договаривай, где будет проблемы, и какие есть решения? |
| Автор: Feldmarschall 17.3.2008, 22:11 |
| С базой данных врядли что-то по нагрузке сравнится. Во всяком случае, все эти копеечные парсинги вообще на её фоне не будут заметны. Ну, и заведомо тяжелые операции, типа ресайза картинок и каких-нибудь сетевых запросов. А вообще, предсказать, где неопытный программист умудрится накосячить - невозможно. причем чем больше он будет озабочен производительностью - тем более тормозную систему сделает. |
| Автор: Sannis 17.3.2008, 22:12 |
| Не буду говорить про "другие проблемы", но скажу про языковые переменные в скине. Никто не заставляет грузить в массив и перебирать все переменные, используемые на сайте. Можно разбить на несколько массивов, расположить по разным файлам и в зависимости от страницы подключать нужный. Так, код я невнимательно читал, заметил нечто наводящее на такую мысль.. Но, имхо, даже на самой нагруженной странице тысячу элементов будет очень трудно набрать, а на большинстве это число сократится до 50-100. Я бы вообще так не заморачивался. А написал бы вместо lang{login_title} в шаблоне сразу {$lang['login_title']}. А если это сделано для простоты понимания дизайнерами, то нично опять же не мешает один раз после редактирования шаблонов делать такую замену и кешировать результат |
| Автор: gta4kv 17.3.2008, 22:13 |
| ну и ладно, оставлю все как есть Добавлено через 11 секунд блин Добавлено через 58 секунд насчет {$lang['login_title']}, у меня шаблон через парсер проходит.. так что пхп не выполняется ;) |