Нина Савельева - Курс "Язык программирования PHP" Страница 26

Тут можно читать бесплатно Нина Савельева - Курс "Язык программирования PHP". Жанр: Компьютеры и Интернет / Прочая околокомпьтерная литература, год неизвестен. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте «WorldBooks (МирКниг)» или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Нина Савельева - Курс "Язык программирования PHP"

Нина Савельева - Курс "Язык программирования PHP" краткое содержание

Прочтите описание перед тем, как прочитать онлайн книгу «Нина Савельева - Курс "Язык программирования PHP"» бесплатно полную версию:
PHP, в настоящее время, – один из наиболее популярных языков для реализации веб-приложений. Данный курс посвящен изучению его основ. Акцент делается на практическое применение полученных навыков.Язык PHP был создан для решения конкретной практической задачи в среде интернет (какой именно можно узнать, прочитав первую лекцию курса). Мы тоже постараемся не отвлекаться слишком сильно на теоретические рассуждения, и будем стремиться к решению какой-нибудь конкретной задачи в каждой из лекций. Большинство примеров взяты из реально существующей системы: виртуального музея истории информатики. Первая часть курса посвящена изучению основ синтаксиса и управляющим конструкциям. После этого рассматривается технология клиент-сервер, как основная сфера приложения языка PHP. Затем переходим к изучению наиболее полезных на наш взгляд встроенных функций и решению с их помощью практических задач. Хотя объектная модель в языке PHP не самая богатая, ее принципиальное наличие позволяет естественным образом описывать объектные модели данных. В качестве базовой модели будет рассмотрена модель документа виртуального музея информатики. После этого будет рассмотрен ряд прикладных аспектов: работа с файловой системой, с БД, строками, сессиями, DOM XML - все это позволит рассмотреть ключевые задачи практического использования языка.

Нина Савельева - Курс "Язык программирования PHP" читать онлайн бесплатно

Нина Савельева - Курс "Язык программирования PHP" - читать книгу онлайн бесплатно, автор Нина Савельева

<?php

$tmpl = $_GET["shablon"];

/* шаблон, введенный пользователем.

Например, это может быть такая строка:

"<h1><!title></h1>

<font

size=-1><!description></font>

<p

align=right><!author><br><!published>

" */

function Show(){

// функция, которая производит замену

// элемента шаблона на его значение

global $tmpl;

foreach($_GET as $k => $v) {

$tmpl = str_replace("<!$k>",$v,$tmpl);

}

echo $tmpl;

}

Show();

?>

Как эти файлы выглядят для обычного пользователя? Если мы введем в форму такие данные как показано на рисунке 8.1, то в результате получим:

Первая машина для переписи населения

Идея наносить данные на перфокарты и затем

считывать и обрабатывать их автоматически

принадлежала Джону Биллингсу, а ее

техническое решение осуществил Герман

Холлерит. Перфокарта Холлерита оказалась

настолько удачной, что без малейших изменений

просуществовала до наших дней.

А. М. Федотов

12.02.03

Рис. 8.1.  Форма для ввода описания документа «статья» и шаблона для его отображения

Функция substr_replace

Эта функция сочетает в себе свойства двух уже рассмотренных нами функций – функции str_replace() и substr(). Ее синтаксис таков:

substr_replace (исходная строка,

строка для замены,

позиция начального символа [, длина])

Эта функция заменяет часть строки строкой, предназначенной для замены. Заменяется та часть строки (т.е. подстрока), которая начинается с позиции, указанной параметром позиция начального символа. С помощью дополнительного аргумента длина можно ограничить число заменяемых символов. То есть, фактически, мы не указываем конкретно строку, которую нужно заменить, мы только описываем, где она находится и, возможно, какую длину имеет. В этом отличие функции substr_replace() от str_replace().

Как и в случае с функцией substr() аргументы позиция начального символа и длина могут быть отрицательными. Если позиция начального символа отрицательна, то замена производится, начиная с этой позиции относительно конца строки. Отрицательная длина задает, сколько символов от конца строки не должно быть заменено. Если длина не указывается, то замена происходит до конца строки.

<?php

$text = "Меня зовут Вася.";

echo "Исходная строка: $text<hr>\n";

/* Следующие две строки заменят всю

исходную строку строкой 'А меня – Петя' */

echo substr_replace($text, 'А меня – Петя',

0) . "<br>\n";

echo substr_replace($text, 'А меня – Петя',

0, strlen($text)) . "<br>\n";

// Следующая строка добавит слово 'Привет! '

// в начало исходной строки

echo substr_replace($text, 'Привет! ',

0, 0) . "<br>\n";

// Следующие две строки заменят имя Вася

// на имя Иван в исходной строке

echo substr_replace($text, 'Иван', 11,

-1) . "<br>\n";

echo substr_replace($text, 'Иван', -5,

-1) . "<br>\n";

?>

В результате работы этого скрипта получим:

Исходная строка: Меня зовут Вася.

------------------------------------------

А меня – Петя

А меня – Петя

Привет! Меня зовут Вася.

Меня зовут Иван.

Меня зовут Иван.

Разделение и соединение строки

Очень полезные функции – функция разделения строки на части и обратная ей функция объединения строк в одну строку. Почему очень полезные? Например, если вы динамически генерируете форму по желанию пользователя, можно предложить ему вводить элементы для создания списка выбора, разделяя их каким-нибудь символом. И для того чтобы обработать полученный список значений, как раз и пригодится умение разбивать строку на кусочки. Для реализации такого разбиения в PHP можно использовать несколько функций:

explode(разделитель,исходная строка

[,максимальное число элементов])

split (шаблон, исходная строка

[, максимальное число элементов])

preg_split (шаблон, исходная строка

[, максимальное число элементов

[,флаги]])

Последние две функции работают с регулярными выражениями, поэтому в данной лекции мы их рассматривать не будем. Рассмотрим более простую функцию – explode().

Функция explode() делит исходную строку на подстроки, каждая из которых отделена от соседней с помощью указанного разделителя, и возвращает массив полученных строк. Если задан дополнительный параметр максимальное число элементов, то число элементов в массиве будет не больше этого параметра, в последний элемент записывается весь остаток строки. Если в качестве разделителя указана пустая строка «""», то функция explode() вернет false. Если символа разделителя в исходной строке нет, то возвращается исходная строка без изменений.

Пример 8.11. мы хотим создать элемент формы – выпадающий список и значения для этого списка должен ввести пользователь, не знакомый с языком html. Создадим такую форму:

<form action=exp.php>

Введите варианты для выбора автора статьи

через двоеточие (":"):<br>

<input type=text name=author size=40>

<br>

<input type=submit value=Создать элемент>

</form>

Скрипт, который будет ее обрабатывать (exp.php), может быть таким:

<?php

$str = $_GET["author"];

$names = explode(":",$str);

// разбиваем строку введенную,

// пользователем с помощью ":"

$s = "<select name=author>";

// создаем выпадающий список

foreach ($names as $k => $name) {

$s .= "<option value=$k>$name";

// добавляем элементы к списку

}

$s .= "</select>";

echo $s;

?>

В итоге, если мы введем такую строчку в форму:

Рис. 8.2.  Ввод значений для создания выпадающего списка

то получим следующий выпадающий список:

Рис. 8.3.  Выпадающий список, полученный в результате обработки формы

Кроме разделения строки на части иногда, наоборот, возникает необходимость объединения нескольких строк в одно целое. Функция, предлагаемая для этого языком PHP, называется implode():

implode (массив строк, объединяющий элемент)

Эта функция объединяет элементы массива с помощью переданного ей объединяющего элемента (например, запятой). В отличие от функции explode(), порядок аргументов в функции implode() не имеет значения.

Пример 8.12. Допустим, мы храним имя, фамилию и отчество человека по отдельности, а выводить их на странице нужно вместе. Чтобы соединить их в одну строку, можно использовать функцию implode():

<?php

$data = array("Иванов","Иван","Иванович");

$str = implode($data," ");

echo $str;

?>

В результате работы этого скрипта получим строку:

Иванов Иван Иванович

У функции implode() существует псевдоним – функция join(), т.е. эти две функции отличаются лишь именами.

Строки, содержащие html-код

Достаточно часто мы работаем со строками, содержащими html-теги. Если отобразить такую строку в браузер с помощью обычных функций отображения данных echo() или print(), то мы не увидим самих html-тегов, а получим отформатированную в соответствии с этими тегами строку. Браузер обрабатывает все html-теги в соответствии со стандартом языка HTML. Иногда нам нужно видеть непосредственно строку, без обработки ее браузером. Чтобы этого добиться, нужно перед тем, как выводить, применить к ней функцию htmlspecialchars().

Функция htmlspecialchars (строка [, стиль кавычек [, кодировка]]) переводит специальные символы, такие как «<», «>», «&», «"» , «'» в такие сущности языка HTML, как «&lt;», «&gt;», «&amp;», «&quot;», «&#039;» соответственно.

Дополнительный аргумент стиль кавычек определяет, как должны интерпретироваться двойные и одинарные кавычки. Он может иметь одно из трех значений: ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES. Константа ENT_COMPAT означает, что двойные кавычки должны быть переведены в спецсимволы, а одинарные должны остаться без изменений. ENT_QUOTES говорит, что должны конвертироваться и двойные и одинарные кавычки, а ENT_NOQUOTES оставляет и те и другие кавычки без изменений.

В параметре кодировка могут быть заданы такие кодировки, как UTF-8, ISO-8859-1 и другие, но ни одна русская кодировка здесь не поддерживается.

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.