Чтение онлайн

на главную - закладки

Жанры

Курс "Язык программирования PHP"

Савельева Нина Владимировна

Шрифт:

$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 и другие, но ни одна русская кодировка здесь не поддерживается.

<?php

$new = htmlspecialchars("<a

href='mailto:[email protected]'>

Написать письмо</a>", ENT_QUOTES);

echo $new;

/ * наша строка перекодируется в такую:

&lt;a href=&#039;mailto:[email protected]&#039;&gt;

Написать письмо&lt;/a&gt; */

В браузере мы увидим:

<a href='mailto:[email protected]'>

Написать письмо</a>

Функция htmlspecialchars перекодирует только наиболее часто используемые спецсимволы. Если необходимо конвертировать все символы в сущности HTML, следует задействовать функцию htmlentities. Русские буквы при использовании этой функции тоже кодируются специальными последовательностями. Например, буква «А» заменяется комбинацией «&Agrave;». Ее синтаксис и принцип действия аналогичен синтаксису и принципу действия htmlspecialchars.

Заключение

Итак, мы завершили знакомство с функциями работы со строками языка PHP. Конечно же, мы затронули далеко не все существующие функции, а лишь малую часть. Мы изучили функции, позволяющие найти набор символов в строке, функции, заменяющие все вхождения одной строки на другую, функции разделения строки на части и соединения нескольких строк в одну, а также рассмотрели функции, позволяющие выводить на экран строки, содержащие html–код без их форматирования браузером.

Работа с файловой системой

Создание файла

Функция fopen

Вообще говоря, в PHP не существует функции, предназначенной именно для создания файлов . Большинство функций работают с уже существующими файлами в файловой системе сервера. Есть несколько функций, которые позволяют создавать временные файлы, или, что то же самое, файлы с уникальным для текущей директории именем. А вот для того, чтобы создать самый обычный файл, нужно воспользоваться функцией, которая открывает локальный или удаленный файл. Называется эта функция fopen. Что значит «открывает файл»? Это значит, что fopen связывает данный файл с потоком управления программы. Причем связывание бывает различным в зависимости от того, что мы хотим делать с этим файлом: читать его, записывать в него данные или делать и то и другое. Синтаксис этой функции такой:

resource fopen ( имя_файла, тип_доступа

[, use_include_path])

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

Поделиться:
Популярные книги

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Его огонь горит для меня. Том 2

Муратова Ульяна
2. Мир Карастели
Фантастика:
юмористическая фантастика
5.40
рейтинг книги
Его огонь горит для меня. Том 2

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Совершенно несекретно

Иванов Дмитрий
15. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Совершенно несекретно

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Единственная для темного эльфа 3

Мазарин Ан
3. Мир Верея. Драконья невеста
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Единственная для темного эльфа 3

Жандарм

Семин Никита
1. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
4.11
рейтинг книги
Жандарм

Долгий путь домой

Русич Антон
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
6.20
рейтинг книги
Долгий путь домой

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Наследие Маозари 6

Панежин Евгений
6. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Наследие Маозари 6

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Лолита

Набоков Владимир Владимирович
Проза:
классическая проза
современная проза
8.05
рейтинг книги
Лолита