Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 921
от 14.03.2008, 21:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 479, Экспертов: 48
В номере:Вопросов: 1, Ответов: 3

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 126555: Здравствуйте, уважаемые участники форума! У меня очень важная такая проблема: Сайт состоит из 6 страниц на 4 языках: англ., немец., русс. и на укр. Как можно сделать так чтобы когда нажимаем на ссылку, например: http://mysite.ru/?...

Вопрос № 126.555
Здравствуйте, уважаемые участники форума!
У меня очень важная такая проблема:
Сайт состоит из 6 страниц на 4 языках: англ., немец., русс. и на укр.
Как можно сделать так чтобы когда нажимаем на ссылку, например:
http://mysite.ru/?lang=en&?page=2 открылся соответствующая страница, т.е. вторая страница англ. версии и т.д.
Если например: http://mysite.ru/?lang=ru&page=5 открылся 5-ая страница русского?
Заранее спасибо! Это сейчас очень важно.
Отправлен: 09.03.2008, 18:40
Вопрос задал: Sherland (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: magnifiko
Здравствуйте, Sherland!
Вариантов масса. Например:

<?php
$lang=(isset($_GET['lang']))?$_GET['lang']:"ru"; //по умолчанию
$page=(isset($_GET['page']))?$_GET['page']:1;

switch ($lang):
case "ru":
switch ($page):
case 1: $text="Страница 1 на русском"; break;
case 2: $text="Страница 2 на русском"; break;
case 3: $text="Страница 3 на русском"; break;
case 4: $text="Страница 4 на русском"; break;
case 5: $text="Страница 5 на русском"; break;
endswitch;
break;
case "en":
switch ($page):
case 1: $text="English page #1"; break;
case 2: $text="English page #2"; break;
case 3: $text="English page #3"; break;
case 4: $text="English page #4"; break;
case 5: $text="English page #5"; break;
endswitch;
break;
endswitch;

echo $text;
if ($page<5) echo "<a href='?lang=".$lang."&page=".++$page."'>К следующей</a>"; // Ну, тоже сделать зависимым от выбранного языка
?>

Можно сделать и инклюды, если содержимое страниц большое. В первую очередь - от желания звисит.
Ответ отправил: magnifiko (статус: 1-ый класс)
Ответ отправлен: 09.03.2008, 19:13

Отвечает: Иван Сергеевич
Здравствуйте, Sherland!

В предыдущем Вашем вопросе Вы уже предлагали вариант с различными индексными файлами (indexru.php, indexen.php) и тд. Данный механизм аналогичен. В зависимости от $_REQUEST["lang"] Вы перенаправляете пользователя на соответствующую индексную страницу, а уже там обрабатываете номер страницы. Это можно сделать как с помощью модуля Apache mod_rewrite, так и через header'ы или include_once() языка php.
В общем я бы предложил проанализировать контент данных страниц. Если на страницах разных языков выводятся, скажем, статьи (одни и те же, но на разных языках), то проще делать одну индексную страницу, на которой в зависимости от полученной переменной $_REQUEST["page"] инклюдить (или забирать из БД, если так реализовано) тексты страниц, названия меню навигации. Таким образом не надо будет изменять интерфейс всех 4х страниц при желании добавить колонку последних статей или блок рекламы - ведь Вы разделите собственно код самой страницы (веб-интерфейс) и содержимое.
К сожалению, подробностей от Вас поступило немного, так что и ответы скорее общие.
Ответ отправил: Иван Сергеевич (статус: 3-ий класс)
Ответ отправлен: 09.03.2008, 19:56

Отвечает: Шпилевский Евгений Васильевич
Здравствуйте, Sherland!
Если ваши страницы лежат в разных файлах, то можно сделать примерно так:
$a = array("ru" => array("page1.htm","page2.htm","page3.htm","page4.htm","page5.htm"),"en" => array("pageen1.htm","pageen2.htm","pageen3.htm","pageen4.htm","pageen5.htm"),"uk" => array("pageuk1.htm","pageuk2.htm","pageuk3.htm","pageuk4.htm","pageuk5.htm"));

и соответсвенно в переменной $a[$lang,$id] будет находится имя файла. Дальше его можно прочесть и вывести на экран, например так:

echo file_get_contents($a[$lang,$id]);
Ответ отправил: Шпилевский Евгений Васильевич (статус: 2-ой класс)
Ответ отправлен: 09.03.2008, 21:17


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.72.3 от 12.03.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное