Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Дополнительная настройка PHP




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

При решении неординарных задач можно следует учитывать ограничения, установленные в настройках. Такие настройки содержатся в файле php.ini (C:\Server\bin\PHP\php.ini). Вот некоторые из них:

memory_limit = 128M - устанавливает максимальное количество памяти, которое может использовать скрипт.

post_max_size = 8M - устанавливает максимальное количество данных, которые будут приняты при отправке методом POST.

;default_charset = "UTF-8" - устанавливает кодировку (по умолчанию, строка закомментирована).

upload_max_filesize = 2M - максимальный размер загружаемого на сервер файла. Изначально установлен очень маленький размер – только два мегабайта. Например, при загрузке базы данных в phpMyAdmin не получится загрузить файл размером больше 2 мегабайт до тех пор, пока не будет изменён этот пункт настройки.

max_file_uploads = 20 - максимальное количество файлов для загрузки за один раз.

max_execution_time = 30 - максимальное время выполнения одного скрипта.

Менять эти настройки совершенно не обязательно, но полезно о них знать.

Установка почтовой заглушки

В каталоге C:\Server\bin\ создайте новый каталог с названием Sendmail. Теперь в этом каталоге создайте файл sendmail.php со следующим содержимым:

#!/usr/bin/env php

<?php

/* PHP.INI

* [mail function]

*;SMTP = localhost

*;smtp_port = 25

*;sendmail_from = [email protected]

* sendmail_path = php.exe sendmail.php --dir C:\mail --open

*/

$is_windows = stristr(PHP_OS, 'WIN');

$options = getopt("", ['open', 'prepend', 'file:', 'dir:']);

$is_open = isset($options['open']);

$is_prepend = isset($options['prepend']);

$is_onefile = isset($options['file']);

$mail_dir = isset($options['dir'])? $options['dir']: sys_get_temp_dir(). '/mail';

$file_name = isset($options['file'])? $options['file']: mkname();

$file_path = $mail_dir. '/'. $file_name;

if (!is_dir($mail_dir)) {

mkdir($mail_dir, 0777, TRUE);

if (!is_dir($mail_dir)) {

die('Mail folder ['. $mail_dir. '] not created');

}

}

$stream = $is_onefile? PHP_EOL. str_repeat("-=", 10). date('Y-m-d H:i:s'). str_repeat("-=", 10). PHP_EOL: '';

while (false!== ($line = fgets(STDIN))) {

//$stream.= ($is_windows? str_replace("\n", PHP_EOL, $line): $line);

$stream.= $line;

}

if ($is_prepend && file_exists($file_path)) {

$file_contents = file_get_contents($file_path);

$stream.= $file_contents;

}

file_put_contents($file_path, $stream, $is_prepend? 0: FILE_APPEND);

if ($is_open && $is_windows) {

pclose(popen("start /B notepad ". $file_path, "r"));

}

function mkname($i = 0) {

global $mail_dir;

$fn = 'mail_'. date('Y-m-d_H-i-s_'). $i. '.eml';

return file_exists($mail_dir. '/'. $fn)? mkname(++$i): $fn;

}

Откройте конфигурационный файл PHP, размещённый в каталоге C:\Server\bin\PHP\php.ini, и добавьте туда одну строчку (см. рисунок 124):

sendmail_path = "C:\Server\bin\PHP\php.exe C:\Server\bin\Sendmail\sendmail.php --dir C:\Server\bin\Sendmail\emails"

Рисунок 124 – настройка почтовой заглушки в php.ini

Сохраните этот файл и перезапустите сервер. Теперь все отправленные письма будут сохраняться в каталоге C:\Server\bin\Sendmail\emails\.

Письма будут иметь расширение .eml и их можно будет открывать в программе Outlook или в обычном текстовом редакторе.

 

Тема 2. Использование PHP в веб-разработке

Как работает PHP

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

PHP - язык создания сценариев, который давно перерос свое название. Дело в том, что PHP - это аббревиатура от слов Personal Home Page (персональная домашняя страница). Созданная Расмусом Лердорфом в 1994 году, первая версия PHP представляла собой набор функций для мониторинга посетителей веб-страницы.

Постепенно, в процессе усовершенствования, PHP из набора функций стал полноценным языком программирования. Его аббревиатура теперь расшифровывается как PHP HyperText Preprocessor - препроцессор гипертекста PHP.

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

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

Рисунок 125 - Процесс выполнения HTML-файла

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

PHP-скрипт, напротив, выполняется на стороне сервера. Когда пользователь посылает запрос на получение веб-страницы, содержащий PHP-код, сервер находит ее и отправляет сначала на обработку интерпретатору PHP. После того, как весь PHP-код будет исполнен, данные отправляются клиенту.

С точки зрения пользователя, это будет обычная HTML-страница, не содержащая никакого постороннего кода, так как он уже был выполнен до этого. Затем браузер обработает полученные данные и отобразит веб-страницу в соответствии с ними. Процесс выполнения PHP-файла представлен на рисунке 126.

Рисунок 126 - Процесс выполнения PHP-файла

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

 

Основы PHP

Первая страница

После установки интерпретатора PHP мы уже создавали тестовую php-страницу info.php и вы могли обратить внимание, что php-скрипт – это текстовый файл c расширением.php. Таким образом, для создания веб-страницы необходимо сохранить файл, содержащий php-код, указав расширение.php.

Когда интерпретатор обрабатывает PHP-файл, он ищет открывающие и закрывающие теги: <?php и ?>, которые указывают ему, когда начинать и заканчивать обработку кода между ними. Подобный способ обработки позволяет PHP внедряться во все виды различных документов, так как всё, что находится вне пары открывающих и закрывающих тегов, интерпретатор PHP проигнорирует.

PHP также допускает короткий открывающий тег <?, однако использовать их нежелательно, так как они доступны, только если включены с помощью конфигурационной директивы php.ini short_open_tag, либо если PHP был сконфигурирован с опцией --enable-short-tags.

Если файл содержит только код PHP, предпочтительно опустить закрывающий тег в конце файла. Это помогает избежать добавления случайных символов пробела или перевода строки после закрывающего тега PHP, которые могут послужить причиной нежелательных эффектов, так как PHP начинает выводить данные в буфер при отсутствии намерения у программиста выводить какие-либо данные в этой точке скрипта.

Откроем текстовый редактор и создадим новый файл. Сохраним его как index.php.

В созданном файле напишем следующий код, показанный на рисунке 127:

<?php

echo '<p>Привет, мир!</p>';

?>

Рисунок 127 – Скриншот страницы index.php

Сохраним файл в каталоге C:\Server\data\htdocs\и введем в адресную строку браузера «http://localhost», как показано на рисунке 128:

Рисунок128 – Скриншот страницы index.php, находящейся по адресу http://localhost

Мы можем видеть, что, во-первых, index.php загрузилась как стартовая страница по умолчанию (как мы и прописали в настройках сервера в файле httpd.conf). Во-вторых, текст выведен на страницу с помощью языковой конструкции echo.

echo - конструкция языка php, служащая для вывода одной или нескольких строк.

Синтаксис языка

Теперь рассмотрим подробнее синтаксис языка php. Программный код состоит из инструкций. Каждая инструкция заканчивается точкой с запятой, например:

echo '<p>Привет, мир!</p>';

Можно записать одну инструкции в несколько строк:

echo '<p>Привет, мир!</p>

<p>Как дела?</p>';

Или, наоборот, несколько инструкций в одну строку:

echo '<p>Привет, мир!</p>'; echo '<p>Как дела?</p>';

Это не будет ошибкой, однако, для улучшения читабельности кода, стоит использовать запись «одна инструкция на одной строке».

Как и во многих языках программирования, в php есть возможность закомментировать (спрятать от интерпретатора) часть кода. Доступно два вида комментариев: однострочные и многострочные.

Однострочные комментарии указываются с помощью двух знаков слэша и действуют в пределах одной строки:

//echo '<p>Привет, мир!</p>

echo <p>Как дела?</p>';

Многострочные комментарии позволяют скрывать сразу несколько строк. Указываются следующим образом:

/*echo '<p>Привет, мир!</p>

echo <p>Как дела?</p>';*/

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

Примечание. Многострочные комментарии НЕ могут быть вложены один в другой. Подобная запись вызовет проблемы:

/*echo '<p>Привет, мир!</p>

/*echo <p>Как дела?</p>';*/

echo <p>Нормально!</p>';*/

Переменные в PHP

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

Допустимые имена переменных: $page1, $_page1, $_1page, $page_1

Недопустимые имена переменных: $1page, $page-1, $~page1, $page! Примечание. Имя переменной чувствительно к регистру. $page1 и $PAGE1 – разные переменные.

Присвоение значения переменной происходит с помощью оператора присваивания «=». Например, вывод сообщения на экран может выглядеть и так:

<?php

$hello='<p>Привет, мир!</p>';

echo $hello;

?>

Как видно, конструкция echo принимает в качестве аргумента не только строки, но и переменные. Также можно усложнить вывод следующим образом:

<?php

$hello='<p>Привет, мир!</p>';

echo 'Сегодня, я хочу сказать: '.$hello;

?>

Точка здесь выступает в качестве инструмента для склейки строк.

Кроме того, конструкция echo позволяет использовать также обычные кавычки:

<?php

$hello='<p>Привет, мир!</p>';

echo “Сегодня, я хочу сказать: $hello”;

?>

В этом случае нет необходимости использовать точку для склейки строк, выведется значение переменной, а не ее имя. Результат выполнения скрипта представлен на рисунке 129.

Рисунок 129 – Скриншот страницы index.php

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...