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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Храрение и вывод переменных из базы 
:(
    Опции темы
chiffa
Дата 26.8.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день. У меня в базе хранятся переменные $_lang ['a'], $_lang ['b'], $_lang ['c']

После авторизации подключается языковый файл и пользователю должно вывести значения $_lang ['a'], $_lang ['b'], $_lang ['c'], но вместо это выводится просто текст

"$_lang ['a']"
"$_lang ['b']" 
"$_lang ['c']"

вопрос как преобразовать этот текст в переменные? Заранее спасибо за ответ 
PM MAIL   Вверх
CruorVult
Дата 26.8.2010, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

eval()

PM MAIL Skype   Вверх
chiffa
Дата 26.8.2010, 14:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо за ответ! Но почему то после обработки eval("\$_lang ['a'] = \"$_lang ['a']\";");

возвращает Array ['a]... не подскажешь почему так?
PM MAIL   Вверх
patap
Дата 26.8.2010, 14:42 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



может стоит все переделать? без хранения имен переменных в бд. Или если так уж хочется, то может лучше через сериализацию (serialize())?


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
enoff
Дата 26.8.2010, 14:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



chiffa, Что находится в базе данных? Что находится в языковом файле?
Код

\$_lang ['a'] = "$_lang ['a']";

и что вы хотите добиться выполнением этого кода, который выведет parse error? Присвоение переменной $_lang['a'] строки "$_lang['a']"?

Цитата(patap @  26.8.2010,  15:42 Найти цитируемый пост)
может стоит все переделать?

и лучше выбрать что-то одно, база или файлы  smile 

Это сообщение отредактировал(а) enoff - 26.8.2010, 14:46
PM MAIL ICQ Skype GTalk   Вверх
Sanchezzz
Дата 26.8.2010, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



файлы проше? в глобале и через фукцию нужно слово запрашивал. допустим при загрузки некого модуля грузится и класс и файл с языком
который можно слить в global $lang_;

а достовать через функцию.

function getMessage($line = ''){
    global $lang_;
        $line = ($line == '' OR !empty($lang_[$line])) ? FALSE : $lang_[$line];
               return $line;
}


<input type="button" value="<?=getMessage('Back')?>">


Ну если так нужно массивы в БД можно дедовским способом serialize(array) ,  unserialize(string)


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
chiffa
Дата 26.8.2010, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



в базе находится $_lang ['a']

я языковом файле $_lang ['a']='ТЕСТ';

и вывожу я  $_lang ['a'] из базы, которая должна стать переменной и замениться на текст из языкового файла. Как с помощью eval это правильно сделать?...

PM MAIL   Вверх
enoff
Дата 26.8.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(chiffa @  26.8.2010,  16:00 Найти цитируемый пост)
в базе находится $_lang ['a']

в этом случае лучше заменять с помощью регулярок. И в тексте использовать не $_lang['a'], а какие-нибудь специальные значения, чтобы удобно было заменять.
Или, думаю, лучший вариант, пересмотреть вашу систему...
PM MAIL ICQ Skype GTalk   Вверх
gta4kv
Дата 26.8.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


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

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



Цитата(chiffa @ 26.8.2010,  15:00)
Как с помощью eval это правильно сделать?...

С помощью eval — делать вообще не правильно. Смотрите на регулярки. 
Так же, хранить ланг в бд, когда он уже хранится в файле — смысла не имеет.

Код

$app = singleton::getInstance( 'application' );
        
preg_match_all( '#lang\{(.+?)\}#', $this->page, $matches );
        
for( $i = 0; $i < count( $matches[ 0 ] ); $i++ )
{
    if( ! isset( $app->lang[ $matches[ 1 ][ $i ] ] ) )
    {
        $line = '[err#1]';
    }
    else
    {
        $line = $app->lang[ $matches[ 1 ][ $i ] ];
    }
          
    $this->page = str_replace( $matches[ 0 ][ $i ], $line, $this->page );    
}


$app->lang[ /**/ ] просто ассоциативный массив.


Цитата

файлы проше? в глобале и через фукцию нужно слово запрашивал. допустим при загрузки некого модуля грузится и класс и файл с языком
который можно слить в global $lang_;

Не надо учить людей тому, чего делать не нужно - а то послушают еще ведь.

Это сообщение отредактировал(а) gta4kv - 26.8.2010, 18:20
PM MAIL   Вверх
chiffa
Дата 26.8.2010, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



gta4kv, спасибо за ответ. ТОлько что такое singleton::getInstance?

и если не затруднит на конкретном примере можно?
PM MAIL   Вверх
gta4kv
Дата 27.8.2010, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


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

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



singleton это излишки моего кода, для наглядности.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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