Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> str_replace по элементам массива 
V
    Опции темы
gta4kv
Дата 17.3.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Всем привет!
По соседству есть похожая тема, не стал спрашивать там, т.к нарушение правил. smile)

Есть функция для работа с lang'om в шаблоне.
Все происходит вот так:
Код

private function langParse( )
    {
        require( $this -> lang_file );
        
        $this -> tm_content = str_replace( "template{charset}", lang_charset, $this -> tm_content );
        
        $lang_size = count( $lang ) - 1;
        $lang_keys = array_keys( $lang );
        
        for( $i = 0; $i < $lang_size; $i++ )
        {
            $this -> tm_content = str_replace( 'lang{' . $lang_keys[ $i ] . '}', $lang[ $lang_keys[ $i ] ], $this -> tm_content );
        }
        
    }

Такой вариант выглядит почему то для меня не очень оптимально.
Как можно усовершенствовать?

Пару слов, о том для чего это надо:
Есть шаблон, по нему разбросано lang{index1}, lang{index2}, ну и etc.

Сколько таких lang{(.*?)} - неизвестно..
Массив с языком тоже неизвестно какого размера, как можно заменить это функцию?
Может сначала найти, а потом уже заменять то что есть в шаблоне?
Или как будет оптимальнее?

Заранее благодарен, фигли. ;)
PM MAIL   Вверх
awers
Дата 17.3.2008, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Помоему более или менее нормально. Какой смысл рацианализировать то в чем нет затыка на текущем этапе?
PM MAIL WWW ICQ Skype   Вверх
gta4kv
Дата 17.3.2008, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Проблем нету, но такой вариант почему то выглядит не очень оптимально.
PM MAIL   Вверх
Canarat
Дата 17.3.2008, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 11.3.2008
Где: Каспий

Репутация: 5
Всего: 5



PM MAIL   Вверх
Feldmarschall
Дата 17.3.2008, 21:24 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



До накопления достаточного опыта не стоит доверять ощущениям. Чаще всего они обманывают.
И переживать надо не за то, что "выглядит" неоптимально, а за то, что работает неоптимально.
PM   Вверх
gta4kv
Дата 17.3.2008, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата(Feldmarschall @ 17.3.2008,  21:24)
До накопления достаточного опыта не стоит доверять ощущениям. Чаще всего они обманывают.
И переживать надо не за то, что "выглядит" неоптимально, а за то, что работает неоптимально.

под выглядит я имею введу работает smile
Если сайт например 1к+ человек в сети, а массив тыща элементов - то работать будет не жутко быстро... или мне кажется? ;)

Canarat,
попробую твой пример.. ;)

Это сообщение отредактировал(а) gta4kv - 17.3.2008, 21:38
PM MAIL   Вверх
Feldmarschall
Дата 17.3.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Кажется.
Не очень понятно, что ты имеешь в виду под словами " 1к+ человек в сети", но если речь идет о большой посещаемости, то у тебя будут совсем другие проблемы, с другими функциями, а не со str_replace.
PM   Вверх
gta4kv
Дата 17.3.2008, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Feldmarschall, да я именно о большой посещаемости.

Раз начал, договаривай, где будет проблемы, и какие есть решения? smile))))
PM MAIL   Вверх
Feldmarschall
Дата 17.3.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



С базой данных врядли что-то по нагрузке сравнится. Во всяком случае, все эти копеечные парсинги вообще на её фоне не будут заметны.
Ну, и заведомо тяжелые операции, типа ресайза картинок и каких-нибудь сетевых запросов.

А вообще, предсказать, где неопытный программист умудрится накосячить - невозможно.
причем чем больше он будет озабочен производительностью - тем более тормозную систему сделает.
PM   Вверх
Sannis
Дата 17.3.2008, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: 6
Всего: 13



Не буду говорить про "другие проблемы", но скажу про языковые переменные в скине.
Никто не заставляет грузить в массив и перебирать все переменные, используемые на сайте. Можно разбить на несколько массивов, расположить по разным файлам и в зависимости от страницы подключать нужный. Так, код я невнимательно читал, заметил нечто наводящее на такую мысль.. Но, имхо, даже на самой нагруженной странице тысячу элементов будет очень трудно набрать, а на большинстве это число сократится до 50-100.
Я бы вообще так не заморачивался. А написал бы вместо lang{login_title} в шаблоне сразу {$lang['login_title']}. А если это сделано для простоты понимания дизайнерами, то нично опять же не мешает один раз после редактирования шаблонов делать такую замену и кешировать результат smile Какой же большой проект без кеширования-то.


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
gta4kv
Дата 17.3.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



ну и ладно, оставлю все как есть

Добавлено через 11 секунд
блин

Добавлено через 58 секунд
насчет {$lang['login_title']}, у меня шаблон через парсер проходит.. так что пхп не выполняется ;)
PM MAIL   Вверх
Sannis
Дата 17.3.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: 6
Всего: 13



Цитата(gta4kv @  17.3.2008,  22:13 Найти цитируемый пост)
насчет {$lang['login_title']}, у меня шаблон через парсер проходит.. так что пхп не выполняется ;)

Жаль, сразу не было понятно что шаблон пассивный smile


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.