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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление переменной в массив. 
:(
    Опции темы
Dima85
Дата 22.8.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день. Сразу выкладываю отрывки кода что б было понятней.
index.php:
Код


***
switch($set_lang) {
    case "ru": include("data/lang_ru.php");break;
    case "en": include("data/lang_en.php");break;
    case "bg": include("data/lang_bg.php");break;
    default: include("data/lang_ru.php");break;
}

***
echo $lang['language'];

lang_en.php:
Код

<?php
$lang=array(
'language' => 'Language: <a href="'.$url.'lang=ru">RU</a> <a href="'.$url.'lang=bg">BG</a> <b>EN</b>',
'firm' => 'Firm',
***
'hideshow' => 'Hide/Show');
?>



в файле index.php есть такая строчка:
echo $lang['language'];
Она выводит текст из языкового файла, в данном случае из lang_en.php.
Возможно ли в $lang['language'] как-то добавить еще текст, который будет добавляться в lang_en.php в переменную $url?

Тоесть мне иногда нужно самому указывать пусть ссылки на определенных страницах.
Помогите пожалуйста советами как лучше это реализовать? 



Это сообщение отредактировал(а) Dima85 - 22.8.2010, 20:26
PM MAIL   Вверх
overmetallist
Дата 22.8.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

$lang['language'].="текст";

в смысле добавить текст, так что ли?

Код

$lang['language'] = str_replace("$url", "$newurl", $lang['language'], $newlang['language']);
echo $newlang['language'];

switch($set_lang) {
    case "ru": include("data/lang_ru.php");break;
    case "en": include("data/lang_en.php");break;
    case "bg": include("data/lang_bg.php");break;
    default: include("data/lang_ru.php");break;
}
***
echo $lang['language'];

или так?

Это сообщение отредактировал(а) overmetallist - 22.8.2010, 21:30
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Dima85
Дата 22.8.2010, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



в файле index.php есть строчка:
Код

echo $lang['language'];

Она выводит текст из языкового файла, в данном случае из lang_en.php.

В данном случае она выводит:
Код

'language' => 'Language: <a href="'.$url.'lang=ru">RU</a> <a href="'.$url.'lang=bg">BG</a> <b>EN</b>',


Каким образом вместо $url подставить свою переменную?

Тоесть мне иногда нужно самому указывать пусть ссылки на определенных страницах.
Помогите пожалуйста советами как лучше это реализовать? 

Это сообщение отредактировал(а) Dima85 - 22.8.2010, 21:31
PM MAIL   Вверх
overmetallist
Дата 22.8.2010, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Каким образом вместо $url подставить свою переменную?


Код

$mynewurl="ya.ru"
$lang['language'] = str_replace("$url", $mynewurl, $lang['language'], $newlang['language']);


а чем так плохо?

Это сообщение отредактировал(а) overmetallist - 22.8.2010, 21:35
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Dima85
Дата 22.8.2010, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



overmetallist, извените но я не понимаю как работает эта конструкция. Чего-то по пороще нет?
PM MAIL   Вверх
g27
Дата 22.8.2010, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Dima85 @ 22.8.2010,  22:22)
overmetallist, извените но я не понимаю как работает эта конструкция. Чего-то по пороще нет?

он имел ввиду, что зная изначально что там должно быть, можно заменить это на своё с помощью str_replace но это как-то не практично на мой  взгляд. может проще отдельный массив делать, чем изменять имеющийся?
PM MAIL Skype   Вверх
overmetallist
Дата 22.8.2010, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



$url можно сделать так подставляя вручную, способов множество

Код

$lang['language'] = 'Language: <a href="'.$url.'lang=ru">RU</a> <a href="'.$url.'lang=bg">BG</a> <b>EN</b>';
echo $lang['language'];


выбирайте:
Код

    * addcslashes  - Экранирует спецсимволы в стиле языка C
    * addslashes - Экранирует спецсимволы в строке
    * bin2hex - Преобразует бинарные данные в шестнадцатиричное представление
    * chr - Возвращает символ по его коду
    * chunk_split - Разбивает строку на фрагменты
    * convert_cyr_string - Преобразует строку из одной кириллической кодировки в другую
    * count_chars - Возвращает информацию о символах, входящих в строку
    * crc32 - Вычисляет CRC32 для строки
    * crypt - Необратимое шифрование (хэширование)
    * echo - Выводит одну или более строк
    * explode - Разбивает строку на подстроки
    * fprintf - Записывает отформатированную строку в поток
    * get_html_translation_table - Возвращает таблицу преобразований
    * hebrev - Преобразует текст на иврите из логической кодировки в визуальную
    * hebrevc - Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевод
    * htmlentities - Преобразует символы в соответствующие HTML сущности
    * htmlspecialchars - Преобразует специальные символы в HTML сущности
    * html_entity_decode - Преобразует HTML сущности в соответствующие символы
    * implode - Объединяет элементы массива в строку
    * localeconv - Возвращает информацию о числовых форматах
    * ltrim - Удаляет пробелы из начала строки
    * md5 - Возвращает MD5 хэш строки
    * md5_file - Возвращает MD5 хэш файла
    * metaphone - Возвращает ключ metaphone для строки
    * nl2br - Вставляет HTML код разрыва строки перед каждым переводом строки
    * number_format - Форматирует число с разделением групп
    * ord - Возвращает ASCII код символа
    * parse_str - Разбирает строку в переменные
    * print - Выводит строку
    * printf - Выводит отформатированную строку
    * quoted_printable_decode - Раскодирует строку, закодированную методом quoted printable
    * quotemeta - Экранирует специальные символы
    * rtrim - Удаляет пробелы из конца строки
    * sha1 - Возвращает SHA1 хэш строки
    * sha1_file - Возвращает SHA1 хэш файла
    * similar_text - Вычисляет степень похожести двух строк
    * soundex - Возвращает ключ soundex для строки
    * sprintf - Возвращает отформатированную строку
    * sscanf - Разбирает строку в соответствии с заданным форматом
    * strcasecmp - Сравнение строк без учета регистра, безопасное для данных в двоичной форме
    * strcmp - Сравнение строк, безопасное для данных в двоичной форме
    * strcoll - Сравнение строк с учетом текущей локали
    * strcspn - Возвращает длину участка в начале строки, не соответствующего маске
    * stripcslashes - Удаляет экранирование символов, произведенное функцией addcslashes()
    * stripos - Возвращает позицию первого вхождения подстроки без учета регистра
    * stripslashes - Удаляет экранирование символов, произведенное функцией addslashes()
    * strip_tags - Удаляет HTML и PHP тэги из строки
    * stristr - Аналог функции strstr, но независит от регистра
    * strlen - Возвращает длину строки
    * strnatcasecmp - Сравнение строк без учета регистра с использованием алгоритма
    * strnatcmp - Сравнение строк с использованием алгоритма "естественного упорядочения"
    * strncasecmp - Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме
    * strncmp - Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме
    * strpos - Находит первое вхождение подстроки в строку
    * strrchr - Находит последнее вхождение символа в строку
    * strrev - Переворачивает строку
    * strripos - Возвращает позицию последнего вхождения подстроки без учета регистра
    * strrpos - Находит последнее вхождение символа в строку
    * strspn - Возвращает длину участка в начале строки, соответствующего маске
    * strstr - Находит первое вхождение подстроки
    * strtok - Разбивает строку
    * strtolower - Преобразует строку в нижний регистр
    * strtoupper - Преобразует строку в верхний регистр
    * strtr - Преобразует заданные символы
    * str_ireplace - Регистро-независимый вариант функции str_replace().
    * str_pad - Дополняет строку другой строкой до заданной длины
    * str_repeat - Возвращает повторяющуюся строку
    * str_replace - Заменяет строку поиска на строку замены
    * str_rot13 - Выполняет над строкой преобразование ROT13
    * str_shuffle - Переставляет символы в строке
    * str_split - Преобразует строку в массив
    * str_word_count - Возвращает информацию о словах, входящих в строку
    * substr - Функция возвращает часть строки
    * substr_count - Подсчитывает число вхождений подстроки в строку
    * substr_replace - Заменяет часть строки
    * trim - Удаляет пробелы из начала и конца строки
    * ucfirst - Преобразует первый символ строки в верхний регистр
    * ucwords - Преобразует в верхний регистр первый символ каждого слова в строке
    * vprintf - Выводит отформатированную строку
    * vsprintf - Возвращает отформатированную строку
    * wordwrap - Выполняет перенос строки на данное количество символов с использованием символа разрыва строки 

PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Dima85
Дата 23.8.2010, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

'language' => 'Language: <a href="'.$url.'lang=ru">RU</a> <a href="'.$url.'lang=bg">BG</a> <b>EN</b>',


Может есть какое-то еще решение. Посути все эти смены $url необходимы из за.
Допустим если открыта ссылка index.php?id=support то в $url необходимо подставить &lang=
Если же открыта просто index.php то необходимо добавить ?lang=
 
PM MAIL   Вверх
The_Aleksey
Дата 23.8.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


<?php
*


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

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



Можно, опять же через str_replace, реализовать так:
lang_en.php
Код

<?php
$lang=array(
'language' => 'Language: <a href="[url]lang=ru">RU</a> <a href="[url]lang=bg">BG</a> <b>EN</b>',
'firm' => 'Firm',
***
'hideshow' => 'Hide/Show');
?>


и в файле index.php при выводе просто заменять [url] на то, что требуется:
Код

***
switch($set_lang) {
    case "ru": include("data/lang_ru.php");break;
    case "en": include("data/lang_en.php");break;
    case "bg": include("data/lang_bg.php");break;
    default: include("data/lang_ru.php");break;
}

***
$url="index.php?id=support&";
echo str_replace("[url]", $url, $lang['language']);

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


Шустрый
*


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

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



Цитата(overmetallist @  22.8.2010,  21:33 Найти цитируемый пост)

Код

$mynewurl="ya.ru"
$lang['language'] = str_replace("$url", $mynewurl, $lang['language'], $newlang['language']);



а чем так плохо?

Данный код не верен. Как по вашему он отработает? Вы пытаетесь поменять "$url" в строке на "ya.ru", но ведь в строке $lang['language'] не будет "$url".
Внимательнее на строку посмотрите:
$lang['language'] = 'Language: <a href="'.$url.'lang=ru">RU</a> <a href="'.$url.'lang=bg">BG</a> <b>EN</b>';



Цитата(Dima85 @  23.8.2010,  08:42 Найти цитируемый пост)
Может есть какое-то еще решение. Посути все эти смены $url необходимы из за.
Допустим если открыта ссылка index.php?id=support то в $url необходимо подставить &lang=
Если же открыта просто index.php то необходимо добавить ?lang=

Красивым решением будет генерация $url с параметром lang.

Покажите фрагмент кода, где инициализируется переменная $url

Измените этот фрагмент кода на что-то подобное:
Код

$url = 'index.php.........' // Инициализация переменной
if (substr($url, strlen($url)-2, 1) != '&' && strpos($url, '?')) {
   // Если урл не заканчивается амперсандом и при этом есть ?, 
   // просто добавляем &

   $url .= '&';
}
else if (!strpos($url, '?')) {
   // Если нет ?, добавляем его

   $url .= '?';
}

// Добавляем lang=$set_lang, 
// где $set_lang - выбранный язык (ru, en, ...)

$url .= 'lang='.$set_lang;


Примерно так

Это сообщение отредактировал(а) ZneP - 24.8.2010, 09:48
PM MAIL ICQ Skype   Вверх
Dima85
Дата 24.8.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Большое спасибо всем кто помогал советами. Я разобрался.
PM MAIL   Вверх
ZneP
Дата 24.8.2010, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Напиши пожалуйста свое решение проблемы
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0598 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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