Анналы page server pagename. Суперглобальный массив $_SERVER. Частичные имена подстраниц

Уже не раз в комментариях просили разобрать межзубный звук th. Это ничуть не удивляет: th – один из самых часто встречаемых звуков английского языка, при этом в русском языке (да и во многих других) этого звука просто нет.

Как его произносить? Как исправить типичные ошибки? Как “натренировать свой рот” на правильное произношение? Сегодня мы ответим на эти вопросы при помощи видео, упражнений, скороговорок, слов и примеров из песен.

Какой звук дают буквы th

Только давай сразу оговоримся, что th – это не звук. Это сочетание букв, которое может читаться как два звука: глухой / θ /, как в слове thanks, и звонкий / ð /, как в слове that. Именно этими знаками межзубные “звуки th” обозначаются в транскрипции. Но в статье я иногда буду писать “звук th” для удобства.

Оба звука, и звонкий и глухой, артикулируются одинаково (губы и язык находятся в одном положении). Поэтому построим работу мы следующим образом:

  1. Сначала научимся правильному положению рта для обоих звуков;
  2. Потом проанализируем возможные ошибки и узнаем, как их исправить;
  3. Потом отработаем на скороговорках и словах каждый звук по отдельности.

Да, этих звуков у нас нет. Но у нас есть понятие “шепелявить”. Помнишь ленивца Сида из Ледникового периода: “Нет, я ф лиф ком молод, ф тобы умирать!” . В английском толковом словаре слово “lisp” (шепелявить) толкуется как “дефект речи, при котором s и z звучат как th в think и this соответственно”.


В этом видео как раз говорится про шепелявость. Рекомендую к просмотру: просто и с юмором.

То есть, получается, нам нужно произнести русский / с / шепеляво для глухого / θ / и русский / з / – для звонкого / ð /. Как это, “шепеляво”? Скажи прямо сейчас слово “состав” . При произнесении звука / c / твой язык находится ЗА зубами. Теперь поставь язык между зубов (звук th – межзубный) и снова скажи “состав” . У тебя получится подобие глухого th, как в слове thick .

Теперь проделай то же самое, но уже со словом “зазор”. В итоге у тебя получится подобие звонкого th, как в слове then .

Почему я говорю “подобие”? Потому что русские /с – з/ /s – z/, а значит и шепелявость их будет немного отличаться. Поэтому давай все же поподробнее остановимся на положении артикуляционного аппарата.

Как произносится звук th в английском

Язык распластан и напряжен, а его кончик находится между верхними и нижними зубами, образуя узкую плоскую щель между режущим краем верхних зубов и поверхностью переднего края языка.

Чтобы научиться идеальной постановке артикуляционного аппарата предлагаю тебе к просмотру видео. В нем показано три лайфхака:

2:08 – как поставить артикуляционный аппарат в идеальное положение: открой рот, положи язык сверху на нижние зубы, чтобы кончик находился прямо за нижней губой и медленно опусти на язык верхние зубы – попробуй произнести глухой вариант th, как в think .

2:52 – как ощутить нужное напряжение языка: берем соломинку и ставим ее между языком и верхними зубами – так ты почувствуешь, какой силы напряжение должно быть у языка.

3:36 – насколько высовывать язык вперед: ставим палец перпендикулярно губам (как, когда мы просим быть потише) и высовываем язык. Язык должен слегка касаться пальца – это и есть лимит.

И не забывай повторять предложения и слова вслед за ведущим! С этим звуком нужна практика и еще раз практика.


Произношение межзубного звука th: видео.

Как произносить звук th на русском

Теперь, когда ты разобрался, в каком положении должен находиться артикуляционный аппарат, давай вместе посмеемся над типичными ошибками русскоговорящих, чтобы избежать их на практике (которая, кстати, будет идти сразу после этого пункта).

Возможные ошибки: Как исправить:
Замена глухого / θ / на / с / (think произносим “синк” );

Замена звонкого / ð / на / з / (then произносим, как “зен” ).

Не выгибай переднюю спинку языка вверх. + Кончик языка должен быть между зубами, а не у основания нижних передних зубов (и не у альвеол, ).
Отчитывай упражнения на контраст слов, например: mouth /maʊθ/ – mouse /maʊs/, thing /θɪŋ/ – sing /sɪŋ/, with /wɪð/ – whizz /wɪz/.
Замена глухого / θ / на / ф / (three произносим, как “фри” );

Замена звонкого / ð / на / в / (breathe произносим, как “брив” ).

Обнажи зубы, особенно нижние, как при их чистке, для того, чтобы нижняя губа не соприкасалась с верхними зубами и не приближалась к ним.
Отчитывай контрастные пары: three /θriː/ – free /friː/, thought /θɔːt/ – fought /fɔːt/.
Замена глухого / θ / звуком / т / (thick произносим, как “тик” );

Замена звонкого / ð / на / д / (this произносим, как “диз” ).

Переднюю часть языка не прижимай к верхним зубам: она опущена вниз, а кончик находится между зубами.
Отчитывай упражнения на контраст слов, например: thick /θɪk/ – tick /tɪk /.
Оглушение звонкого варианта th / ð / ⇒ замена на глухой вариант / θ / в конце слова.

Может происходить по привычке, ведь в русском языке звонкие согласные на конце слова произносятся глухо.

Помни, что в английском языке звонкие звуки на конце слова не оглушаются!
Отчитывай упражнения на контраст слов, например: teeth /tiːθ/ – teethe /tiːð/.

Видишь, не так уж все и сложно. 🙂 Разобраться, как именно должен произноситься этот звук, вполне посильно. Тем более, что в Интернете полно обучающих видео по этой теме (например, посмотри , из которого ты узнаешь о том, как правильно произносить звуки th в сочетании с другими звуками).

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

Отработка звука th на английском: упражнения и тренировки

Первый совет: сначала, чтобы языку стало привычнее это “межзубное положение”, намеренно преувеличивай! Высовывай язык максимально вперед, произноси его очень утрированно, не стесняйся выглядеть глупо. Подробнее в видео:

Еще одно упражнение, которое поможет привыкнуть: напевать абсолютно любую мелодию (например, “В лесу родилась елочка”), заменяя все слова на звуки / θ / и / ð /.

В лесу родилась ёлочка, в лесу она росла, зимой и летом стройная зеленая была
Thethe thethethe thethethe, thethe thethe thethe, thethe the thethe thethethe thethethethe thethe.

Теперь, когда ты привык, переходи к отработке на словах и скороговорках.

Английские слова со звуком th: глухой вариант

Итак, настраиваем рот в нужное положение и приступаем к фонетической зарядке на звук th. Не забывай, что этот звук не нужно смягчать перед гласными переднего ряда (такими, как i). Звук / θ / всегда только твердый.

thought /θɔːt/

thrust /θrʌst/

through /θruː/

strength /streŋθ/

thrall /θrɔːl/

fourth /fɔːθ/

Отлично! Теперь ты можешь попробовать на скороговорках.

Скороговорки на английском на звук th

  • Th irty-th ree th ousand and th irty th inkers th ought th irty-th ree th ousand and th irty th oughts.
  • Th ree th erapists th rew th ree th ermometers in th ree th ick th ickets of th orny th istle.
  • I am th ankful for a th ousand th ings … For faith ful earth , for birth and breath , for th ought and health and strength and mirth , and, may be, when it comes, for death .

В завершение нашей тренировки, как обычно, мы возьмем пример из известной песни на звук th. Я остановилась на песне “Under My Thumb” группы The Rolling Stones. Слово thumb повторяется на протяжении всей песни с отчетливым произношением звука / θ /.

Слова со звуком th в английском языке: звонкий вариант

Теперь переходим к звонкому звуку / ð /. Вновь обращаю твое внимание, что этот звук всегда твердый и не смягчается перед гласными переднего ряда.

loathe /ləʊð/

breathe /briːð/

other /ˈʌð.ə r /

there /ðeə r /

whether /ˈweð.ə r /

mother /ˈmʌð.ə r /

father /ˈfɑː.ðə r /

brother /ˈbrʌð.ə r /

neither /ˈniː.ðə r /

worthy /ˈwɜː.ði/

leather /ˈleð.ə r /

together /təˈɡeð.ə r /

another /əˈnʌð.ə r /

Английские скороговорки на звук th

  • Th ese broth ers bath e with th ose broth ers, th ose broth ers bath e with th ese broth ers.
  • Th ey are always both ering Fath er and Moth er to do things for th em.
  • Th ese cloth es are rath er for th e southern weath er, th ose cloth es are rath er for th e northern weath er.

Кстати, очень советую и изучить еще одну скороговорку. Вернее, это множество разных скороговорок на глухой и звонкий th, которые наложены на музыку. Выучишь эту песню, и твой артикуляционный аппарат никогда не забудет верное положение. 🙂

А теперь пример из песни. Для звонкого th я остановилась на песне “One Way Or Another” группы Blondie. Слово another вновь произносится на протяжении всей песни и четко артикулируется.

Итоги: чтение звуков th в английском языке

Как видишь, ничего слишком страшного в звуке th нет. Главное – практика. Ты можешь сохранить нашу статью в закладки и периодически прогонять тренировки звуков th снова и снова. А чтобы ничего не спуталось в голове, предлагаю кратко подвести итоги:

  • Буквосочетание th дает 2 звука: глухой / θ /, как в thanks, и звонкий / ð /, как в that . Запомни эти значки: если ты встретил новое слово, то обратись к словарю , чтобы узнать транскрипцию и услышать произношение.
  • Этот звук произносится, как шепелявое / s / и / z / – язык распластан и напряжен, кончик находится между верхними и нижними зубами, образуя узкую плоскую щель между режущим краем верхних зубов и поверхностью переднего края языка.
  • Основная сложность для нас – приучить свой артикуляционный аппарат к этому звуку. Особенно к тому, чтобы правильно произносить его во время быстрой, беглой речи. Поэтому обязательно проводи для себя тренировки: напевай песенки, прогоняй наборы слов и скороговорки.

Не переключайся: продолжение следует

В мы посчитали, что нам осталось разобрать 24 звука. Следовательно, после сегодняшнего тренинга остается 22. В следующий раз мы возьмемся за новую порцию звуков, на этот раз – гласных. До новых встреч! 🙂

Depending on the namespace and the settings, a forward slash in the pagename provides special functionality, see subpage feature .

Namespace prefixes [ edit ]

Also, the first part of a page name may not coincide with a project-independent namespace prefix that is automatically converted to another one . As an example, the name Project: A-Kon on Wikipedia is not possible.

The first part of a page name can coincide with a namespace prefix that is not converted. For example, there might be articles in the English Wikipedia about books called Wikipedia: The Big Adventure and Talk: Secrets are Bad (but only without the space after the colon). However, in that case the pages are in the wrong namespace. This may be inconvenient in searching or displaying a list of pages. Also, in the second case there is no link to a Talk page about the book. (As explained above, the second page name is not possible on e.g. the German Wikipedia: see w:de:Talk: Secrets are Bad).

Prefixes referring to other projects or pseudo-namespaces [ edit ]

A page name cannot start with a prefix that is in use to refer to another project, including language codes, e.g. "en:" (list), or one of the pseudo-namespaces "Media:" and "Special:".

Thus e.g. an article about the album "Q: Are We Not Men? A: We Are Devo!" can not have that exact name. An attempt to create the article, whether by a link Q: Are We Not Men? A: We Are Devo! or a URL http://en.wikipedia.org/wiki/Q:Are_We_Not_Men%3F_A:_We_Are_Devo%21 leads to Wikiquote.

With regard to using the prefix of the project itself there is no consistency: a name like en:a cannot be used on en: (try w:en:a and w:en:en:a), while "Q: Are We Not Men? A: We Are Devo!" can exist on Wikiquote: q:Q: Are We Not Men? A: We Are Devo! .

Maximum page name length [ edit ]

The maximum page name length is 255 bytes (excluding the namespace prefix). Be aware that non-ASCII characters may take up to four bytes in UTF-8 encoding, so the total number of characters you can fit into a title may be less than 255 depending on the language it"s in.

Spaces vs. underscores [ edit ]

In page names , a blank space is equivalent with an underscore. A blank space is displayed in the large font title at the top of the page, the URLs show an underscore. See also below.

Case-sensitivity [ edit ]

Currently the first character of the page name is case-in sensitive, except in the following Wiktionaries:

Case where the first character is case-insensitive

The canonical form is with a capital.

Note that in the case of a prefix that is not a namespace for the software, and in the case of a second prefix, the case-insensitivity does not apply to the first character after this prefix, e.g. Template:H:Interwiki linking and Template:H:interwiki linking are distinguished.

Case-sensitivity of the file name extension of an image [ edit ]

Note that even the file name extension of an image is case-sensitive: compare image:Stop_sign_us.jpg and image:Stop_sign_us.JPG 748410449856

Ignored spaces/underscores [ edit ]

Spaces/underscores which are ignored:

  • those at the start and end of a full page name
  • those at the end of a namespace prefix, before the colon
  • those after the colon of the namespace prefix
  • duplicate consecutive spaces

Some show up in the link label, e.g. [[___help__ :_ _template_ _]] becomes ___help__ :_ _template_ _ , linking to Help:Template .

However, a space before or after a "normal" colon makes a difference, e.g. and MediaWiki User"s Guide: Editing overview , and MediaWiki User"s Guide:Editing overview are all distinguished, because "MediaWiki User"s Guide:" is a pseudo-namespace, not a real one.

Coding of characters [ edit ]

A page name can not contain e.g. %41, because that is automatically converted to the character A, for which %41 is the code. [[%41]] is rendered as . Similarly %C3%80 is automatically converted to the character À. [[%C3%80]] is rendered as . The URL of the page is http://meta.wikipedia.org/wiki/%C3%80 . One can argue what is the real name of the page, %C3%80 or À (a user will say the latter), but anyway there can not be distinct pages with these names.

Canonical form [ edit ]

The inclusion tag for a non-existing page shows a link with the canonical form of the page name: {{qwsazx}}, {{:qwsazx}}, {{project:qws azx}} give Template:Qwsazx , Qwsazx , Wikiquote:Qws azx ; compare with ordinary links Template:qwsazx , qwsazx , project:qws azx ; these work like Piped links , e.g. []; in this case the conversion shows up on the referring page only when pointing at it: in the pop-up and in the status bar (if applicable for the browser); whether the target is a redirect, and what the final target is, is not shown at all.

An attempt to include a page from another project results in just displaying the wikitext, e.g. Template:Qwsazx ; ordinary interwiki links do not show existence and do not show a canonical form in the hover box or status bar: en:project:qwsazx . The same applies if interwiki link style is used for a link to a page in the same project: m:project:qwsazx .

A saved redirect page shows the canonical form of the target, even though the preview renders the link in the usual way, compare with the preview of .

Alphabetical order [ edit ]

Thus we have the following partial list showing the order:

!"#$%&"()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_"
abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«­®¯°±²³´µ ¸¹º»¼½¾¿
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋ
ŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ
ǺǻǼǽǾǿ΄΅Ά·ΈΉΊΌΎΏΐ
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰ
αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ

Note in particular that "Z" comes before "a", and "z" before "é". The blank space within a page name is treated as an underscore, and therefore comes after the capitals, and before the lower case letters. However, a "blank space" after the name comes before any character. Sometimes a special character looks like a regular letter, but has a special code anyway.

Thus we have the order PC, PCX, PC Bruno, PCjr, Κύρια Σελίδα.

Variables PAGENAME and PAGENAMEE [ edit ]

Within localurl, {{PAGENAME}} should be used in the first part (because it is converted by localurl), or {{PAGENAMEE}} in the second part:

  • {{SERVER}}{{localurl:Special:Allpages|namespace=12&from={{PAGENAMEE}}}} gives here:

//сайт/w/index.php?title=Special:Allpages&namespace=12&from=Page_name

  • {{SERVER}}{{localurl:Special:Allpages/{{PAGENAME}}|namespace=12}} gives here:

//сайт/w/index.php?title=Special:Allpages/Page_name&namespace=12

  • {{SERVER}}{{localurl:Special:Allpages|namespace=12&from={{PAGENAME}}}} gives here:

//сайт/w/index.php?title=Special:Allpages&namespace=12&from=Page name (wrong link)

  • {{SERVER}}{{localurl:Special:Allpages/{{PAGENAMEE}}|namespace=12}} gives here:

//en.wikiquote.org/w/index.php?title=Special:Allpages/Page_name&namespace=12 (works here, the underscore, converted from a space, is not affected by the second conversion, but it does not work with special characters).

Flector 5

Обновлено:

При установке структуры постоянных ссылок в виде "/%category%/%postname%.html " все ссылки на записи начинают заканчиваться на ".html ". Однако, этот формат ссылок никак не влияет на ссылки страниц. Что немного раздражает – подобной структурой ссылок мы подчеркиваем, что на нашем сайте является страницей, а что нет. Страница это то, что с ".html " в конце, а все остальное это рубрики, метки или еще какие другие таксономии. Ссылки на страницы в данном контексте выбиваются из общей картины – они кажутся ссылками на рубрики, хотя это и не так. Плагин эту неприятную ситуацию исправляет, добавляя ссылкам на страницы окончание ".html ".

1 Распаковываем архив.

2 Копируем файл в папку /wp-content/plugins/ .

3 Заходим в админку блога на вкладку "Плагины " и активируем плагин.

Настроек в плагине нет и сразу после своей активации он начинает работать. Теперь все ссылки на страницы превратятся из таких:

Вот в такие:

Но как быть в том случае, если вам надо изменить ".html " на ".htm " или вообще на ".php "? В плагине совсем нет никаких настроек, поэтому его придется отредактировать вручную. Для этого откройте файл плагина и измените в нем следующие строчки:

13 $wp_rewrite ->

$wp_rewrite->

18 $wp_rewrite -> page_structure = "%pagename%.html" ;

$wp_rewrite->page_structure="%pagename%.html";

Вместо ".html " пропишите нужное вам окончание. После этого вам необходимо будет деактивировать и активировать плагин заново. Сразу после повторной активации плагина все ссылки на ваши страницы будут содержать то окончание, которое вы прописали в файле плагина.

Я отнес данный плагин к рубрике "SEO ", но формально, конечно, он к этой рубрике не имеет никакого отношения. Поисковикам откровенно наплевать, как выглядят ссылки на ваши записи, страницы или рубрики. Да и вашим посетителям, по большому счету, это тоже неважно. Но с точки зрения эстетичности ссылок данный плагин необходим. В конце концов, вы же изменили структуру постоянных ссылок на более красивую, хотя это и не имеет никакого смысла с точки зрения SEO-оптимизации блога.

Из вашего комментария:

Привет Crayon спасибо за ваш ответ 1.yup мой клиент запросил для пользовательского имени страницы для всех страниц через сайт. Мы используем инструмент CMS для сайта над кодом, который жестко закодирован в главном шаблоне 2. да, я вызываю другую st() на загрузку страницы для захвата других событий, prop, evar.. 3. Если я передаю s.PageName = "abc.com:home" всякий раз, когда я вызываю другое st() PageName, получает захват в другой st(), чтобы уменьшить дублирование имени страницы. Я передаю ее как параметр. 4. Я также перекрестно проверил с другими инструментами отладки только в одном маяке, я передаю pagename

Хорошо, поэтому причина, по которой вы видите как значение pageName, так и URL-адрес в отчетах ваших страниц, состоит в том, что у вас есть два вызова st() , и только 1 из них имеет значение для s.pageName . Вы сказали, что pageName значение pageName чтобы не допустить, чтобы страница подсчитывалась дважды. Ну, это уже происходит, потому что вы используете два вызова st() . Поскольку вы не указываете имя pageName во втором, URL-адрес по умолчанию.

Идеальное решение состоит в том, чтобы перестроить ваш код, чтобы иметь только один вызов st() . Вы сказали, что работаете с CMS. Поэтому в идеале вы должны использовать s_code.js сценария в глобальном заголовке. то вы должны иметь один вызов st() в глобальном нижнем колонтитуле. Вы также можете поместить глобальные вары в раздел нижнего колонтитула (или в s_code.js > s_doPlugins). Затем между этими двумя является то, где вы бы поместили какой-либо специальный код на странице. Мне кажется, что вы уже делаете это... но вам просто нужно удалить первый вызов st() .

Если по какой-либо причине вы не можете достичь идеального решения, вместо этого вы должны использовать s.tl() для второго запроса. Чтобы использовать s.tl() , вы сделали бы что-то вроде этого:

S.prop1="foo"; s.eVar1="bar"; s.events="event1"; s.linkTrackVars="prop1,eVar1,events"; s.linkTrackEvents="event1"; s.tl(true,"o","description");

В принципе, любые реквизиты, eVars и события, которые вы хотите отслеживать в вызове s.tl , должны быть объявлены в linkTrackVars и linkTrackEvents .

ПРИМЕЧАНИЕ . Вы должны действительно стремиться к идеальному решению. Это не только отчет о страницах, который может завысить. Любые другие варны, которые вы установили, тоже будут завышены. Кроме того, платежная модель Adobe должна взимать плату за каждый отдельный запрос на свой сервер, поэтому вашему клиенту, вероятно, не понравится тот факт, что вы удваиваете свой счет, делая это.

Метод s.tl отнюдь не идеален, но лучше, чем вы сейчас делаете. поскольку это уменьшит инфляцию отчета, а запросы s.tl стоить меньше, чем запросы st .

Суперглобальный массив $_SERVER

Одним из важнейших предопределённых массивов является массив $_SERVER - в него PHP-интерпретатор помещает переменные, полученные от сервера. Без данных переменных сложно организовать полноценную поддержку Web-приложений. Ниже приводится описание наиболее важных элементов суперглобального массива $_SERVER.

Замечание

Просмотреть полный список элементов массива $_SERVER можно либо при помощи функции print_r(), которая распечатывает дамп массива либо при помощи функции phpinfo(), которая выводит информацию о PHP-интерпретаторе.

Элемент $_SERVER["DOCUMENT_ROOT"]

Элемент $_SERVER["DOCUMENT_ROOT"] содержит путь к корневой директории сервера, если скрипт выполняется в виртуальном хосте, в данном элементе указывается путь к корневой директории виртуального хоста. Т.е. в конфигурационном файле httpd.conf виртуальный хост имеет директиву DocumentRoot, которой присвоено значение "D:/main", элемент $_SERVER["DOCUMENT_ROOT"] будет содержать значение "D:main".

Элемент $_SERVER["HTTP_ACCEPT"]

В элементе $_SERVER["HTTP_ACCEPT"] описываются предпочтения клиента относительно типа документа. Содержимое этого элемента извлекается из HTTP-заголовка Accept, который присылает клиент серверу. Содержимое данного заголовка может выглядеть следующим образом

image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*

Заголовок Accept позволяет уточнить медиа-тип, который предпочитает получить клиент в ответ на свой запрос. Этот заголовок позволяет сообщить серверу, что ответ ограничен небольшим множеством предпочитаемых типов.

Символ * используется для группирования типов в медиа-ряду. К примеру, символом */* задается использование всех типов, а обозначение type/* определяет использование всех подтипов выбранного типа type.

Замечание

Медиа-типы отделяются друг от друга запятыми.

Каждый медиа-ряд характеризуется также дополнительным набором параметров. Одним из них является так называемый относительный коэффициент предпочтения q, который принимает значения от 0 до 1, соответственно, от менее предпочитаемых типов к более предпочитаемым. Использование нескольких параметров q, позволяет клиенту сообщить серверу относительную степень предпочтения для того или иного медиа-типа.

Замечание

По умолчанию параметр q принимает значение 1. Кроме того, от медиа-типа он отделяется точкой с запятой.

Пример заголовка типа Accept:

Accept: audio/*; q=0.2, audio/basic

В данном заголовке первым идёт тип audio/* включающий в себя все музыкальные документы и характеризующийся коэффициентом предпочтения 0.2. Через запятую указан тип audio/basic, для которого коэффициент предпочтения не указан и принимает значение по умолчанию равное единице. Цитируя RFС2616 данный заголовок можно интерпретировать следующим образом: “Я предпочитаю тип audio/basic, но мне можно также слать документы любого другого audio-типа, если они будут доступны, после снижения коэффициента предпочтения более чем на 80 %”.

Пример может быть более сложным.

Accept: text/plain; q=0.5, text/html,
text/x-dvi; q=0.8, text/x-c

Замечание

Следует учитывать, что элемент $_SERVER["HTTP_ACCEPT"] содержит точно такую же информацию, но без начального заголовка Accept.

Этот заголовок интерпретируется следующим образом: Типы документов text/html и text/x-c являются предпочтительными, но если они недоступны, тогда клиент отсылающий данный запрос, предпочтёт text/x-dvi, а, если и его нет, то он может принять тип text/plain.

Элемент $_SERVER["HTTP_ACCEPT_LANGUAGE"]

В элементе $_SERVER["HTTP_ACCEPT_LANGUAGE"] описываются предпочтения клиента относительно языка. Данная информация извлекается из HTTP-заголовка Accept-Language, который присылает клиент серверу. Можно привести следующий пример:

Accept-Language: ru, en; q=0.7

Который можно интерпретировать следующим образом: клиент предпочитает русский язык, но в случае его отсутствия согласен принимать документы на английском. Элемент $_SERVER["HTTP_ACCEPT_LANGUAGE"] будет содержать точно такую же информацию, но без заголовка Accept-Language:

ru, en; q=0.7

Содержимое элемента $_SERVER["HTTP_ACCEPT_LANGUAGE"] можно использовать для определения национальной принадлежность посетителей. Однако результаты будут приблизительными, так как многие пользователи используют английские варианты браузеров, которые будут извещать сервер о том, что посетитель предпочитает лишь один язык - английский.

Элемент $_SERVER["HTTP_HOST"]

В элементе $_SERVER["HTTP_HOST"] содержится имя сервера, которое, как правило, совпадает с доменным именем сайта, расположенного на сервере. Как правило, имя, указанное в данном параметре совпадает с именем $_SERVER["SERVER_NAME"]. В параметре приводится лишь доменное имя без названия протокола (http://), т.е.

www.sofftime.ru

Элемент $_SERVER["HTTP_REFERER"]

В элементе $_SERVER["HTTP_REFERER"] приводится адрес страницы, с которой посетитель пришёл на данную страницу. Переход должен осуществляться по ссылке. Создадим две страницы index.php и page.php.

Страница index.php

echo "Ссылка на страницу PHP
"
;
echo .
$_SERVER [ "HTTP_REFERER" ]
?>

Страница page.php будет аналогичного содержания, но ссылка будет указывать на страницу index.php.

Страница page.php

echo "Ссылка на страницу PHP
"
;
echo "Содержимое $_SERVER["HTTP_REFERER"] - " .
$_SERVER [ "HTTP_REFERER" ]
?>

При переходе с одной страницы на другую, под ссылкой будет выводится адрес страницы, с которой был осуществлён переход.

Элемент $_SERVER["HTTP_USER_AGENT"]

Элемент $_SERVER["HTTP_USER_AGENT"] содержит информацию о типе и версии браузера и операционной системы посетителя.

Вот типичное содержание этой строки: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)". Наличие подстроки "MSIE 6.0" говорит о том, что посетитель просматривает страницу при помощи Internet Explorer версии 6.0. Строка "Windows NT 5.1" сообщает, что в качестве операционной системы используется Windows XP.

Замечание

Для Windows 2000 элемент $_SERVER["HTTP_USER_AGENT"] выглядит следующим образом: "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)")", в то время как для Windows XP - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)".

Если посетитель воспользуется браузером Opera, то содержание $_SERVER["HTTP_USER_AGENT"]может выглядеть следующим образом: "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98) Opera 6.04 ". Подстрока "MSIE 6.0" здесь так же присутствует, сообщая, что браузер Opera является совместимым с браузером Internet Explorer и использует те же динамические библиотеки Windows. Поэтому, при анализе строки, возвращаемой браузером, следует иметь в виду, что к Internet Explorer относится строка, содержащая подстроку "MSIE 6.0" и не содержащая подстроки "Opera". Кроме того, из данной строки можно заключить, что пользователь использует операционную систему Windows 98.

Замечание

Пользовательский агент браузера Firefox может выглядеть следующим образом Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5.

При использовании браузера Netscape, содержание элемент $_SERVER["HTTP_USER_AGENT"] может выглядеть следующим образом: "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1". Принадлежность к этому браузеру можно определить по наличию подстроки "Netscape". Кроме того, можно узнать, что посетитель выходит в Интернет, используя операционную версию Linux, с ядром, оптимизированным под Pentium IV, находясь в графической оболочке X-Window. Этот механизм удобно использовать для сбора статистической информации, которая позволяет дизайнерам оптимизировать страницы под наиболее распространенные браузеры.

Элемент $_SERVER["REMOTE_ADDR"]

В элемент $_SERVER["REMOTE_ADDR"] помещается IP-адрес клиента. При тестировании на локальной машине - этот адрес будет равен 127.0.0.1. Однако при тестировании в сети переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер. Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv().

Замечание

Прокси-сервера являются специальными промежуточными серверами, предоставляющими специальный вид услуг: сжатие трафика, кодирование данных, адаптация под мобильные устройства и т.п. Среди множества прокси-серверов различают так называемые анонимные прокси-сервера, которые позволяют скрывать истинный IP-адрес клиента, такие сервера не возвращают переменной окружения HTTP_X_FORWARDED_FOR.

Извлечение переменной окружения HTTP_X_FORWARDED_FOR

echo getenv (HTTP_X_FORWARDED_FOR );
?>

Элемент $_SERVER["SCRIPT_FILENAME"]

В элемент $_SERVER["SCRIPT_FILENAME"] помещается абсолютный путь к файлу от корня диска. Так, если сервер работает под управлением операционной системы Windows, то такой путь может выглядеть следующим образом "d:main estindex.php", т.е. путь указывается от диска, в UNIX-подобной операционной системы путь указывается от корневой директории /, например "/var/share/www/test/index.php".

Элемент $_SERVER["SERVER_NAME"]

В элемент $_SERVER["SERVER_NAME"] помещается имя сервера, как правило, совпадающее с доменным именем сайта, расположенного на нём. Например,

www.softtime.ru

Содержимое элемента $_SERVER["SERVER_NAME"] часто совпадает с содержимым элемента $_SERVER["HTTP_HOST"]. Помимо имени сервера суперглобальный массив $_SERVER позволяет выяснить ещё ряд параметров сервера, например IP-адрес сервера, прослушиваемый порт, какой Web-сервер установлен и версию HTTP протокола. Эта информация помещается в элементы $_SERVER["SERVER_ADDR"], $_SERVER["SERVER_PORT"], $_SERVER["SERVER_SOFTWARE"] и $_SERVER["SERVER_PROTOCOL"], соответственно. Ниже приводится пример с использованием данных элементов.

Использование элементов массива $_SERVER

echo "Имя сервера - " . $_SERVER [ "SERVER_NAME" ]. "
" ;
echo "IP-адрес сервера - " . $_SERVER [ "SERVER_ADDR" ]. "
" ;
echo "Порт сервера - " . $_SERVER [ "SERVER_PORT" ]. "
" ;
echo "Web-сервер - " . $_SERVER [ "SERVER_SOFTWARE" ]. "
" ;
echo "Версия HTTP-протокола - " . $_SERVER [ "SERVER_PROTOCOL" ]. "
" ;
?>

Элемент $_SERVER["REQUEST_METHOD"]

В элемент $_SERVER["REQUEST_METHOD"] помещается метод запроса, который применяется для вызова скрипта: GET или POST.




Top