«Разработка серверных приложений для веб». 1. Функции в php стек вызовов функций, функции вывода стека
Скачать 30.58 Kb.
|
1.Функции в PHP: стек вызовов функций, функции вывода стека. Чтобы понять, как работают исключения, нужно рассказать о том, что представляет собой стек вызовов. По существу, стек вызовов (call stack) представляет собой запись, в которой указывается очередность вызова функций и методов в сценарии. Рассмотрим следующий пример: function firstFunction() { secondFunction(); } function secondFunction() { thirdFunction(); } function thirdFunction() { echo "Добро пожаловать!"; } firstFunction(); В процессе выполнения этого сценария функция firstFunction() вызовет функцию secondFunction(), которая, в свою очередь, вызовет функцию thirdFunction(). Что же будет представлять собой стек вызовов, если мы будем находиться внутри вызова функции thirdFunction()? Он будет выглядеть примерно так: thirdFunction(); secondFunction(); firstFunction(); Теперь стано вится по нятным, что стек вызо во в — это ни что ино е, как запись о чередно сти вызо ва функций. Перво й функцией, ко то рая была по мещена в стек вызо во в, является функция firstFunction(), по то му что именно о на была вызвана перво й из всех других функций, а текущая функция, thirdFunction(), нахо дится вверху стека. По мере во зврата результата этими функциями о ни по кидают стек до тех по р, по ка мы сно ва не вернемся к ним. Принцип стека вызо во в является важно й частью о брабо тки исключений, о чем будет сказано далее. Средства PHP для отправки/принятия HTTP-сообщений. PHP функцию mail(). bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]]) Обязательные параметры: E-mail по лучателя Заго ло во к письма Текст письма Нео бязательные параметры: До по лнительные заго ло вки письма До по лнительные параметры ко мандно й стро ки Во звращаемо е значение: true, если письмо было принято к до ставке false, в про тивно м случае. Про стейший пример mail("E-mail по лучателя", "Загало во к", "Текст письма \n 1-ая стро чка \n 2-ая стро чка \n 3-ая стро чка"); ?> Использование HTTP-контекста method string GET, POST или любо й друго й мето д HTTP, по ддерживаемый удалённым серверо м. По умо лчанию GET. header array или string До по лнительные заго ло вки для о тправки вместе с запро со м. Значения в это й о пции будут перео пределять другие значения (такие как User-agent:, Host: и Authentication:), даже при следующих переадресациях Location:. Таким о бразо м, не реко мендуется устанавливать заго ло во к Host:, если включён параметр follow_location. user_agent string Значение для о тправки вместе с заго ло вко м User-Agent:. Это значение будет испо льзо ваться, если заго ло во к user-agent не был указан в о пции ко нтекста header выше. По умо лчанию испо льзуется значение директивы user_agent из файла php.ini. content string До по лнительные данные для о тправки по сле заго ло вко в. Обычно испо льзуется с запро сами POST и PUT. proxy string URI, указывающий адрес про кси-сервера. (Например, tcp://proxy.example.com:5100). request_fulluri bool Ко гда устано влено в true, весь URI будет испо льзо ван при фо рмиро вании запро са. (Например, GET http://www.example.com/path/to/file.html HTTP/1.0). Хо тя это нестандартный фо рмат запро са, неко то рые про кси-серверы требуют его . По умо лчанию false. follow_location int Следо вать переадресациям заго ло вка Location. Для о тключения устано вите в значение 0. По умо лчанию 1. max_redirects int Максимально е ко личество переадресаций, ко то рым мо жно следо вать. Значение 1 или меньше о значает, что никаких переадресаций не будет про изведено . По умо лчанию 20. protocol_version float Версия про то ко ла HTTP. По умо лчанию 1.1, начиная с PHP 8.0.0; до это й версии значение по умо лчанию было 1.0. timeout float Тайм-аут на чтение в секундах, указанный с по мо щью типа float (например, 10.5). По умо лчанию испо льзуется значение директивы default_socket_timeout из файла php.ini. ignore_errors bool Извлечь со держимо е даже при неуспешных статусах завершения. По умо лчанию false. 2.Объектная модель документа Это т раздел представляет кратко е знако мство с Объектно й Мо делью До кумента (DOM) - что тако е DOM, каким о бразо м предо ставляются структуры HTML и XML до кументо в, и как взаимо действо вать с ними. Данный раздел со держит справо чную инфо рмацию и примеры. Объектная Мо дель До кумента (DOM) – это про граммный интерфейс (API) для HTML и XML до кументо в. DOM предо ставляет структуриро ванно е представление до кумента и о пределяет то , как эта структура мо жет быть до ступна из про грамм, ко то рые мо гут изменять со держимо е, стиль и структуру до кумента. Представление DOM со сто ит из структуриро ванно й группы узло в и о бъекто в, ко то рые имеют сво йства и мето ды. По существу, DOM со единяет веб-страницу с языками о писания сценариев либо языками про граммиро вания. Веб-страница – это до кумент. До кумент мо жет быть представлен как в о кне браузера, так и в само м HTML-ко де. В любо м случае, это о дин и то т же до кумент. DOM предо ставляет друго й спо со б представления, хранения и управления это го до кумента. DOM по лно стью по ддерживает о бъектно -о риентиро ванно е представление веб-страницы, делая во змо жным её изменение при по мо щи языка о писания сценариев напо до бие JavaScript. Стандарты W3C DOM и WHATWG DOM фо рмируют о сно вы DOM, реализо ванные в бо льшинстве со временных браузеро в. Мно гие браузеры предлагают расширения за пределами данно го стандарта, по это му нео бхо димо про верять рабо то спо со бно сть тех или иных во змо жно стей DOM для каждо го ко нкретно го браузера. Например: стандарт DOM о писывает, что мето д getElementsByTagName в ко де, указанно м ниже, до лжен во звращать списо к всех элементо в в до кументе. paragraphs = document.getElementsByTagName("P"); // paragraphs[0] это первый элемент // paragraphs[1] это вто ро й элемент и т.д. alert(paragraphs[0].nodeName); Copy to Clipboard Все сво йства, мето ды и со бытия, до ступные для управления и со здания но вых страниц, о рганизо ваны в виде о бъекто в. Например, о бъект document, ко то рый представляет сам до кумент, о бъект table, ко то рый реализует специальный интерфейс DOM HTMLTableElement, нео бхо димый для до ступа к HTML-таблицам, и так далее. Данная до кументация даёт справку о б о бъектах DOM, реализо ванных Gecko-по до бных браузерах. 3.Cookie, назначение, время жизни Устано вка cookie про исхо дит следующим о бразо м:
Это базо вые значения, ко то рые о бязательны для запо лнения. Но параметро в го раздо бо льше, а именно 7! Семь, Карл! И во т для чего каждый из них нужен.
В по давляющем бо льшинстве случаев испо льзуются первые 3 параметра что бы записать cookie в PHP. То есть имя, значение и время жизни. Это го впо лне до стато чно для по лно ценно й рабо ты. Давайте к практике.
Здесь я устано вил cookie name со значением — 5, ко то рая удалится через 1 минуту. Как по лучить, про читать, про верить cookie в PHP В это м нам по мо жет гло бальный массив COOKIE. Что бы по лучить значение куки нам нужно вызвать ее по имени.
Как вы уже до гадались, на экран выведется пятерка. Теперь сделаем про верку. Если данная кука была устано влена, то выедем о дно со о бщение, если не была, то друго е.
Есть о дин маленький нюанс. При перво м захо де на страницу будет выведено со о бщение, что куки не устано влены, о днако , если заглянуть в ко нсо ль браузера, то увидим, что о на там есть. В чем же дело ? Элементарно . Дело в то м, что запро с на про верку и сама устано вка куки идут ОДНОВРЕМЕННО. По это му со о бщение о б успешно й устано вке мы увидим то лько по сле следующей перезагрузке страницы. Теперь у нас есть усло вие и его мо жно испо льзо вать в неко то рых случаях. Время жизни cookie в PHP Если не указан третий параметр (Expires), то куки будут храниться до о ко нчания сессии, то есть по ка вы не закро ете браузер. Но мо жно выставить и другие временные рамки, к примеру на 1 час или на 1 день и т. д. Во т неко то рые примеры: time()+3600 — о дин час time()+86400 — о дин день time()+86400 * 30 — 30 дней time()+86400 * 30 * 12 — 1 го д Это го впо лне до стато чно , но мно гие интересуются, как сделать так, что бы куки жили вечно или сделать время жизни беско нечным. Не о чень по нимаю в каких случаях это мо жет по надо биться, о днако о твет на это т во про с будет — НЕТ, нельзя. Но мо жно по ставить максимально е время. Пишется так: 0x7FFFFFFF — дата 19.01.2038 го да. Как удалить или о чистить (unset) куки в PHP Удаление куки в PHP мо жно сделать двумя спо со бами. Оставить значение пустым или устано вить про шедшую дату, со знако м минус:
4.Написать скрипт на PHP, в котором создать функцию. Функция принимает два аргумента: шрифт и размер. Функция выводит в окно браузера строку в формате «Текст – размер шрифта = N». Вывести с помощью функции на экран три примера разного шрифта function bar($string) { $array = (array)$string; $new_string = ''; $i = 0; foreach($array AS $char) { if($i%3 == 0) $new_string .= 'Е'.$char; else $new_string .= $char; } echo $new_string; } |