|
|
|
| Здравствуйте.
Пишу сайт - узкоспециальный сервис, что-то вроде онлайн калькулятора. Хочу сделать его на нескольких языках таким образом, чтобы по умолчанию был английский, а другие из имеющихся автоматически загружались в соответствии с настройками пользовательского браузера.
Подскажите, пожалуйста, по следующим вопросам.
1. Хочется, чтобы сайт загружался по адресу типа http://mysite без никаких больше добавок. Это так и получается, если все начинается со страницы index.html, которая лежит в корне. Но мне кажется, что для моих целей туда надо положить index.php . На своей машине через Денвер попробовал - запускает все нормально. Будет ли это работать в большом интернете? Не хотелось бы, чтобы адрес сайта был типа http://mysite/index.php .
2. Мультиязычность.
По этой теме я прочел:
форум php, тема: Сайт на 2-х языках, ак реализовать?
форум php, тема: Многоязычное сопровождение сайта
статью СУПЕРГЛОБАЛЬНЫЙ МАССИВ $_SERVER
Реализацию мультиязычности представляю себе так:
index.pxp принимает переменную $_SERVER['HTTP_ACCEPT_LANGUAGE'] . Если находит английский язык первым в списке - загружает английский вариант. Если находит какой-либо из доступных - загружает вариант этого языка. Если ничего не находит - загружает английский вариант. Во всех вариантах пользователь может по ссылке перейти на любой доступный язык.
Что не получается.
Чтобы посмотреть, как я смогу работать с суперглобальным массивом, я создал страницы с кодом, как описано в статье <СУПЕРГЛОБАЛЬНЫЙ МАССИВ $_SERVER> в разделе <Элемент $_SERVER['HTTP_REFERER']>, а именно:
страница index.php с кодом:
<?php
echo "<a href=page.php>Ссылка на страницу PHP</a><br />";
echo "Содержимое $_SERVER['HTTP_REFERER'] - ".
$_SERVER['HTTP_REFERER']
?>
|
и страница page.php с кодом:
<?php
echo "<a href=index.php>Ссылка на страницу PHP</a><br />";
echo "Содержимое $_SERVER['HTTP_REFERER'] - ".
$_SERVER['HTTP_REFERER']
?>
|
т.е. сделал то, что прописано в статье, полагая позже заменить на нужный мне элемент суперглобального массива. Но результатом на запуск страницы index.php было сообщение:
<Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Z:\home\expansomat\www\index.php on line 3>.
Подскажите, пожалуйста, почему возникает такая ошибка и что надо сделать.
Работоспособна ли такая идея?
3. Следующие вопросы возникли по мере написания письма.
Каким образом страница index.php загрузит нужный вариант? Через редирект? Как это воспримут поисковики? Что следует сделать, чтобы все было хорошо?
Буду благодарен за помощь. | |
|
|
|
|
|
|
|
для: nepalets
(07.05.2011 в 21:09)
| | 1. Сайт и так доступен без пути к индексному файлу, тоесть
http://site.ru/index.php равноценно http://site.ru, а
http://site.ru/cat/index.php равноценно http://site.ru/cat.
Тоесть `index.php` можешь никогда не указывать, это не обязательно.
2. В обеих кодах ты не поставил точку с запятой.
3. Ничего не надо делать. Поисковики на это не обратят внимания. | |
|
|
|
|
|
|
|
для: Z3RO
(07.05.2011 в 21:34)
| | Спасибо!
Но...
>2. В обеих кодах ты не поставил точку с запятой.
Точка с запятой стоит; и в тексте страниц, и в коде, который я показал в вопросе; она разделает операторы echo. Или я чего-то не понимаю? | |
|
|
|
|
|
|
|
для: nepalets
(08.05.2011 в 00:02)
| | ну точка с запятой должна быть в конце каждой операции по сути, но ваш пример тоже будет работать, после последней строки ставить не обязательно помоему. | |
|
|
|
|
|
|
|
для: sl1p
(08.05.2011 в 00:19)
| | Обязательно | |
|
|
|
|
|
|
|
для: nepalets
(07.05.2011 в 21:09)
| | Вот так перепишите первый код
echo "<a href=page.php>Ссылка на страницу PHP</a><br />";
echo "Содержимое $_SERVER['HTTP_REFERER'] - ".
$_SERVER['HTTP_REFERER'];
|
А так второй:
echo "<a href=index.php>Ссылка на страницу PHP</a><br />";
echo "Содержимое $_SERVER['HTTP_REFERER'] - ".
$_SERVER['HTTP_REFERER'];
|
| |
|
|
|
|
|
|
|
для: Z3RO
(08.05.2011 в 00:27)
| | таки да, это не обязательно когда одна строка кода между тегами, перепутал. | |
|
|
|
|
|
|
|
для: Z3RO
(08.05.2011 в 00:27)
| | Переписал. Перезагрузил машину. Результат тот же - syntax error и т.д.
Т.е. в коде синтаксическая ошибка? Странно. Ведь код взят со статьи здесь на сайте.
И на что он ругается, не пойму - на верхний регистр, или кавычки, или пробелы? Или у меня что-то не установлено?
Ребята, а у вас этот код срабатывал? | |
|
|
|
|
|
|
|
для: nepalets
(08.05.2011 в 00:57)
| | Теперь сработало. Таким путем -
echo "<a href=page.php>Ссылка на страницу PHP</a><br />";
echo 'Содержимое $_SERVER[HTTP_REFERER] - '.
$_SERVER['HTTP_REFERER'];
|
т.е. убрал одиночные кавычки из глобального массива и строку для печати заключил в одиночные кавычки вместо двойных. Кстати, без последних точки с запятой тоже работает.
Ну что ж, завтра (уже сегодня) будем посмотреть, как реализуется идея мультиязычности.
Z3RO и sl1p - СПАСИБО! | |
|
|
|
|
|
|
|
для: nepalets
(08.05.2011 в 01:18)
| | Я и забыл насчет кавычек. Можна написать и с кавычками, экранируя их
echo "<a href=page.php>Ссылка на страницу PHP</a><br />";
echo 'Содержимое $_SERVER[\'HTTP_REFERER\'] - '.
$_SERVER['HTTP_REFERER'];
|
| |
|
|
|
|
|
|
|
для: Z3RO
(08.05.2011 в 09:51)
| | Спасибо. | |
|
|
|